当前位置: 首页 > 知识库问答 >
问题:

将Anylogic 8.6连接到红移数据库

陶璞
2023-03-14

我感兴趣的是将Anylogic 8.6中的模型链接到红移数据库中的表/视图。这将允许模型自动获取新数据,以定义我们的人口和运行,从而实现更好的运营决策(即,我们预期明天会发生什么,明天总是在变化)。

此版本与excel电子表格或SQL Server数据库具有本机连接。FAQ中有一个链接到MySQL的分步指南。我已经将本指南改编为红移,但我不清楚如何让连接真正启动,或者如何测试它是否真的有效。

以下是我所做的:

  1. 从以下网站下载了最新的JDBC驱动程序:https://docs.aws.amazon.com/redshift/latest/mgmt/configure-jdbc-connection.html
  2. 我已将所有驱动程序文件提取到模型文件夹中
  3. 我在AnyLogic中打开了模型,选择了“项目”视图,并在“依赖项”选项卡上导入了驱动程序JAR文件(引用了文件RedshiftJDBC42-no-awssdk-1.2.50.1077.JAR)
  4. 转到Main的“高级Java”属性,并在导入部分键入以下行:Import com。亚马逊。红移。jdbc42。司机 。模型编译/生成时没有错误

我不确定下一步该怎么办。

>

从连接调色板中,我将数据库拖入模型的主部分。我那时

a) 已将连接选择为“其他数据库类型”

b) 在“JDBC驱动程序”部分,我输入了com。亚马逊。红移。jdbc42。驱动程序

c)在连接URL中,我输入了以下内容:jdbc: redflow://

d) 使用我正常SQL工作中使用的常用用户名/密码

这样做之后,我仍然只能看到导入表的常见选项。所以我从“连接”调色板中添加了一个“查询”项,并做了一个简单的“从表中选择*”——但不清楚如何将其输入本地数据库...

我接下来的步骤是什么?还是我在这里浪费时间?红移连接将大大有助于使我们的模型适合更广泛的操作使用。。。

非常感谢。


共有1个答案

督坚白
2023-03-14

将外部数据库(DB)表导入内置的AnyLogic DB与通过数据库对象和连接调色板元素读取/写入外部数据库是不同的。后者不影响/改变前者。

如您所见,后者可以用于任何兼容JDBC的数据库(这就是FAQ说明所指的)。

前者仅适用于Excel/Access和SQL Server。(仔细想想,这需要将外部数据库的模式转换为内置AnyLogic数据库的模式,后者实际上是一个标准的HSQLDB数据库;因此,根据定义,即使使用JDBC,这也不是一个“通用”操作,因此仅支持某些外部数据库。)

因此,您可以读取红移数据库并写入内部AnyLogic数据库,以执行“手动导入”(可以在模型初始化过程中调用);您还可以避免连接调色板查询元素,只需以标准Java方式执行SELECT查询,或许可以使用可视化添加的数据库对象来更轻松地获得连接。

但重要的是要记住,这只会让你能够使用内置的可视化配置内部数据库链接的东西,如代理种群和库块的属性;你总是可以直接通过对外部数据库的查询来做到这一点(这意味着一点例如,更多用于设置代理种群的“手动”代码)。此外,您还有一个数据库的两个副本的存储开销,并且任何性能差异都不清楚(交换导入的一次性成本与此后“本地”HSQLDB查询的任何可能改进)。

也可以使用它用于DB导入的底层AnyLogic Java API(例如,importFromExternalDatabase函数;搜索帮助),使其稍微简单一些,但您仍然需要预先准备好内部DB表设置(或者编写代码来解析外部DB模式并创建适当的HSQLDB表)。

 类似资料:
  • 我正试图使用Postgre JDBC驱动程序从SQL Workbench/J连接到红移数据库,但我无法通过。我收到这个错误“连接尝试失败”。jdbc驱动程序的位置正确。我还尝试通过Aginity Workbench进行红移,但它无法显示数据库列表。我有一个连接数据库的url,格式是但令人惊讶的是,我甚至无法ping主机。我可以通过amazon控制台看到数据库的健康状况良好。所以,我的问题是: 为什

  • 试图做一些非常简单的事情,但不确定为什么它不起作用。 我下载了SQL workbench并连接到我的红移驱动程序。连接很好。我使用 现在我正试图连接到数据库。我尝试了和,但出现以下错误: 有人知道为什么没有连接吗?

  • 我一直在尝试将我的EMR5.11.0集群上的Spark 2.2.1连接到我们的Redshift商店。 我遵循的方法是- 谢了!

  • 问题内容: 您如何连接到Java中的MySQL数据库? 当我尝试时,我得到 要么 要么 问题答案: 是一种相当古老的做事方式。更好的方法是通过查找已经为您配置的应用服务器容器来获取一个: 或直接从数据库驱动程序实例化和配置一个: 然后从中获取连接,如上:

  • 我正在尝试开发一个android应用程序,它需要通过java servlet连接到远程数据库as400,并将JSON对象返回给用户。 这是我的DoGet方法代码: 在我通过eclipse启动servlet之后,它会停在“Class.forName(…)它给了我以下的错误:错误!1.爪哇。sql。SQLException:应用程序请求者无法建立连接。(连接超时:连接) 并且似乎无法连接到服务器,但我

  • 我正试图将greenplum数据库连接到python上,但我得到了JVMNotFound错误 以下是我所尝试的: 错误消息:引发JVMNotFoundException(“没有JVM共享库文件({0})”JPYPE._JVMFinder.JVMNotFoundException:没有找到JVM共享库文件(JVM.dll)。请尝试正确设置JAVA_HOME环境变量 如有任何帮助,不胜感激