如何将多个数据库添加到一个Presto目录中?

时间:2019-02-08 21:23:43

标签: mysql presto apache-superset

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

2 个答案:

答案 0 :(得分:0)

尝试一下。 connect-to-mysql-jdbc-sources

config.properties:
datasources=jmx,hive,mysqlcatalog

答案 1 :(得分:0)

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