我有一个 Azure Data Explorer (ADX) 又名。 Kusto 实例与 PostgreSQL 灵活服务器 (16.4) 结合使用,并且想要从 ADX 访问 SQL 表 test_adx_meta。
没有防火墙或 IP 范围限制。
我遵循了官方的 postgres_request 命令文档并启用了该插件。
.show plugins | where PluginName == "postgresql_request"
“插件名称”:postgresql_request,“IsEnabled”:true,“描述”:版本=2
SQL 表:
CREATE TABLE test_adx_meta (
id integer PRIMARY KEY,
value varchar NOT NULL
);
ADX查询:
evaluate postgresql_request(
'Host=***.postgres.database.azure.com; Port = 5432;'
'Database=db;'
'User Id=***; Password=***;'
'select * from "test_adx_meta"'): (id: int, value: string)
部分查询失败:0x80131500(消息:ExecutePluginOperator失败===>执行postgresql请求时发生错误。无法加载文件或程序集'System.Security.Cryptography.Algorithms,Version=4.3.0.0,Culture=neutral,PublicKeyToken=<...> ' 或其依赖项之一。系统找不到指定的文件。:),
我似乎 Kusto 插件的实现无法加载.NET lib System.Security.Cryptography.Algorithms。
有人见过类似的问题或知道发生了什么吗?
谢谢:)
如果在创建 ADX 集群时选择计算优化作为工作负载,那么如果您在该集群中运行以下查询来连接 Azure 数据库的 PostgreSQL 服务器,由于插件版本不兼容,您可能会收到上述错误。
evaluate postgresql_request(
'Host=<serverName>.postgres.database.azure.com; Port = 5432;'
'Database=<dbName>;'
h'User Id=<userName>;'
h'Password=<password>;',
'select * from public.test_adx_meta') : (id: int, value: string)
| where Id > 0
| project value
为了减少错误,请在创建 ADX 集群时选择 Dev/test 选项作为工作负载,如下所示:
然后您将能够成功运行查询,如下所示: