MySQL连接器

MySQL连接器允许在外部MySQL数据库中查询和创建表。这可用于在MySQL和Hive等不同系统之间或在两个不同的MySQL实例之间联接数据。

配置

要配置MySQL连接器,在etc/catalog中创建一个目录属性文件,例如mysql.properties,将MySQL连接器挂载为mysql目录。使用以下内容创建文件,并根据设置替换连接属性:

  1. connector.name=mysql
  2. connection-url=jdbc:mysql://example.net:3306
  3. connection-user=root
  4. connection-password=secret
  • 是否开启查询下推功能

如果要启用mysql连接器的连接器下推功能,不需要做任何操作,mysql连接器的下推功能默认是打开的。但也可以按如下设置:

  1. jdbc.pushdown-enabled=true
  2. #true表示打开下推,false表示关闭。
  • 下推模式选择

mysql连接器的下推模式默认是部分下推的,如果要启用mysql连接器的全部下推功能,可以按如下设置:

  1. jdbc.pushdown-module=FULL_PUSHDOWN
  2. #FULL_PUSHDOWN,表示全部下推;BASE_PUSHDOWN,表示部分下推,其中部分下推是指filter/aggregation/limit/topN/project这些可以下推。

外部函数注册

MySQL连接器支持注册外部函数。

配置支持下推的外部函数注册命名空间catalog.schema。 例如在etc/catalog/mysql.properties中配置:

  1. jdbc.pushdown.remotenamespace=mysqlfun.default

外部函数下推

将外部函数下推到MySQL数据源执行。

配置支持下推的外部函数注册命名空间catalog.schema。 例如在etc/catalog/mysql.properties中配置:

  1. jdbc.pushdown.remotenamespace=mysqlfun.default

可以声明自己支持多个函数命名空间中的函数,在jdbc.pushdown.remotenamespace配置项中使用’|’分割既可。例如:

  1. jdbc.pushdown.remotenamespace=mysqlfun1.default|mysqlfun2.default|mysqlfun3.default
  2. #表示当前Connector实例同时支持mysqlfun1.default、mysqlfun2.default、mysqlfun3.default三个函数命名空间最终的函数下推到当前连接的数据源中执行。

多个MySQL服务器

可以根据需要创建任意多的目录,因此,如果有额外的MySQL服务器,只需添加另一个不同名称的属性文件到etc/catalog中(确保它以.properties结尾)。例如,如果将属性文件命名为sales.properties,openLooKeng将使用配置的连接器创建一个名为sales的目录。

查询MySQL

MySQL连接器为每个MySQL数据库提供一个模式。可通过执行SHOW SCHEMAS来查看可用MySQL数据库:

  1. SHOW SCHEMAS FROM mysql;

如果有一个名为web的MySQL数据库,可以通过执行SHOW TABLES查看数据库中的表:

  1. SHOW TABLES FROM mysql.web;

可以使用以下方法之一查看web数据库中clicks表中的列的列表:

  1. DESCRIBE mysql.web.clicks;
  2. SHOW COLUMNS FROM mysql.web.clicks;

最后,可以访问web数据库中clicks的表:

  1. SELECT * FROM mysql.web.clicks;

如果对目录属性文件使用不同的名称,请使用该目录名称,而不要使用上述示例中的mysql

MySQL连接器限制

暂不支持以下SQL语句:

DELETEGRANTREVOKESHOW GRANTSSHOW ROLESSHOW ROLE GRANTS