【问题标题】:How to add multiple databases to one Presto catalog?如何将多个数据库添加到一个 Presto 目录?
【发布时间】:2019-07-03 04:02:45
【问题描述】:

我使用的是 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/ 

【问题讨论】:

    标签: mysql presto apache-superset


    【解决方案1】:

    试试这个。 connect-to-mysql-jdbc-sources

    config.properties:
    datasources=jmx,hive,mysqlcatalog
    

    【讨论】:

    • 有趣。我会尽快试试这个。
    • 根据我的研究,数据源密钥已贬值,不应再使用。
    【解决方案2】:

    您只能将超集配置为指向 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 文件中的属性,但多年来一直不需要。它已被弃用,因此您不应该设置它,我们应该完全删除它。

    【讨论】:

      猜你喜欢
      • 2021-10-30
      • 1970-01-01
      • 2013-05-10
      • 1970-01-01
      • 1970-01-01
      • 2013-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多