mysql - 如何将多个数据库添加到一个 Presto 目录?
问题描述
我正在使用 Presto 0.216 版,我想在一个目录文件中连接多个数据库。我正在使用 Apache SuperSet 通过 presto 运行查询,它迫使我进入一个名为 hive.properties 的目录。
我在 AWS 的 Ubuntu 实例上运行 Presto。我可以访问所有数据库并在多个目录文件(one.properties、hive.properties 等)中定义的多个数据库上运行“加入”查询。然而,如上所述,超集与 presto 的集成方式并非如此。
在 presto 文档中,它说我可以运行一个命令,通过连接器名称对数据库进行分组,here。
SHOW SCHEMAS FROM mysql
但是,失败并出现错误:
Catalog mysql does not exist
我知道我没有名为 mysql.properties 的目录,但我所有的目录都有:
connector.name=mysql
所以我相信这应该有效。我只想通过 Presto 从 Apache SuperSet 查询多个数据库。不幸的是,我不能只添加多个 , 或 ; 我的目录变量的单独连接 URL:
connection-url=jdbc:mysql://myurl:3306/
解决方案
您只能将超集配置为指向 Presto 中的某个(一个)目录。目前没有其他方法可以配置 Superset。但是,您仍然可以发出查询(使用 SQL Lab 功能对此进行测试)连接来自多个目录的数据,就像通常通过 Presto CLI 一样:
select ..from catalog1.schema.table_name join catalog2.schema.table_name on ...
(你没有得到这种方式是 Superset 向你显示表格列表等)
MySQL 令人困惑,因为它们使用术语“数据库”来表示“模式”。单个 MySQL 服务器具有一个或多个用户数据库,以及包括“mysql”在内的内部数据库。因此,当文档说“MySQL 连接器为每个 MySQL 数据库提供模式”时,它指的是单个 MySQL 服务器内的多个“数据库”。
至于梅里尔的回答:
Qubole 文档中提到的“datasources”属性是一个属性,它曾经位于主 etc/config.properties 文件中,但多年来一直不需要。它已被弃用,所以你不应该设置它,我们应该完全删除它。
推荐阅读
- android - 方法调用“toString”可能会产生“java.lang.NullPointerException”错误
- opencv - 如何将文本图像与同时具有文本和一些图形的图像分离
- javascript - Typescript .push 来自嵌套数组的数据
- html - 带有嵌入式 Google 日历的 iFrame 在 iOS 中旋转后溢出
- ide - 调整 JetBrains 产品中的代码完成
- swift - 动态调度协议扩展不适用于多个目标
- ios - 在 XCUITest 中,查找表视图单元格和节标题显示顺序的语法
- elasticsearch - ElasticSearch - 获取新记录
- eclipse - eclipse 中 mbed-cli 的编译时间很长
- c++ - 请求非类类型 ' ' 中的成员 ' '