我使用的是Presto版本0.216,我想在一个目录文件中连接多个数据库。我使用Apache SuperSet通过presto运行查询,它迫使我使用一个名为hive.properties的目录。
我在AWS的Ubuntu实例上运行Presto。我可以访问所有数据库,并在多个目录文件(one.properties、hive.properties等)中定义的多个数据库上运行"联接"查询。然而,如上所述,超集与presto的集成方式并非如此。
在presto文档中,它说我可以运行一个命令,通过连接器名称对数据库进行分组,在这里。
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中的某个(一个)目录。目前没有其他方法可以配置超级集。但是,您仍然可以发出查询(使用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主文件中的属性,但多年来一直不需要它。它已被弃用,所以您不应该设置它,我们应该完全删除它。
试试这个。连接到mysqljdbc源
config.properties:
datasources=jmx,hive,mysqlcatalog