跳转至

CATALOG

概要描述

在Aloudata AIR虚拟化引擎中,Catalog主要分为两大类,一类是外部数据源相关的Catalog,通过这类Catalog可以实现包括:创建数据源,修改数据源,删除数据源。另外一类是数据加工过程中用于存放加工后的资产的内部Catalog;

CREATE CATALOG

  • 创建外部Catalog

​ 创建数据源,可以通过指定数据源的连接参数,用户名,密码等信息在Aloudata AIR虚拟化引擎中创建数据源。

CREATE EXTERNAL CATALOG [IF NOT EXISTS] <connectorType>
AS <catalogName>
[ WITH (
  'key1': 'value1',
  'key2': 'value2' [, 'key': 'value' ...]
)];
  • 创建内部Catalog
CREATE CATALOG IF NOT EXISTS <catalogName>
  • 参数说明
关键字 类型 说明
if not exists SQL关键字,可选 若指定,则创建同名的数据源不会报错;若不指定,则报错
connectorType SQL标识符,必填 创建数据源的类型
catalogName SQL标识符,必填 数据源名称
with key-value 字符串映射,可选 创建数据源给出的连接数据源的参数

AIR支持的数据源类型:HIVE2HIVE3, MAX_COMPUTEICEBERGMYSQLPRESTOSPARKCALCITEPRESTO_JDBCPOSTGRESQL ,OSS,HOLOGRES,RDS,DORIS,STARROCKS, DAMENG, ODPS, KSYUN, ECS, ORACLE, MSSQL, GAUSS, CLICKHOUSE, HANA, HBASE, MONGODB, TIDB, OCEANBASE_MYSQL, OCEANBASE_ORACLE, ELASTICSEARCH, API, HDFS, S3, FILE等等。

关于数据源链接参数的说明

若创建数据源时没有指定用户名(username),密码(password),IP(host),端口(port),则创建数据源的时候可能会报验证错误。具体提供哪些数据源的配置信息,需要根据创建的数据源类型而定。

此外,AIR Engine 提供了一些额外的扩展参数:

  1. driver_url: 指定 StarRocks 的 MySQL driver,默认为 MySQL 8.0 的驱动。比如, 'driver_url':'https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar'
  2. pushdown : 开启查询下推功能,默认为 false。若开启,则设置 'pushdown':'true'
  3. collate: 开启 查询下推时配置 MySQL order by 排序规则。比如'collate':'utf8mb4_bin'

  4. 使用示例

create external CATALOG IF NOT EXISTS MYSQL
AS mysql01
WITH (
  'password' : '***',
  'port' : '3306',
  'host' : '10.5.20.26',
  'username' : 'root'
);
create external catalog if not exists hive2 
AS hive1   
WITH (
  'username': 'root',
  'password': '***',
  'host': '127.0.0.1',
  'port': '9093',
  'clusterId': 'default' 
);
create external catalog if not exists ICEBERG
AS rp
with (
  'catalogType': 'HIVE',
  'resources': '/data/hadoop-2.8.2/etc/hadoop/core-site.xml,/data/hadoop-2.8.2/etc/hadoop/hdfs-site.xml',
  'connect' : 'thrift://127.0.0.1:***',
  'port': '***',
  'host': '127.0.0.1'
);

ALTER CATALOG

修改数据源。

  • 语法说明
ALTER CATALOG [IF EXISTIS] <catalogName>
[ WITH (
  'catalogType': 'catalogType',
  'resources': 'resources-file',
  'connect' :'connection-url'
)]
  • 参数说明
关键字 类型 说明
IF EXISTS SQL关键字,可选 若指定,则修改不存在的数据源时,不会报错;若不指定,则会报错。
catalogName SQL标识符,必填 修改数据源时指定的数据源名称
WITH key-value 字符串映射,可选 修改数据源的参数
  • 使用示例
alter catalog if exists "tardis-mysql" # <---此处catalogName包含特殊字符,需要用双引号
with (
  'username': 'root',
  'password': '***',
  'connect' : '<connection-url>'
)
alter catalog hive1
with (
  'username': 'root',
  'port': '9083',
  'host': '****',
  'password': '****',
  'synccataloginterval': '5400000', 
  'connect':'jdbc:mysql://127.0.0.1:3306'
);

DROP CATALOG

删除数据源。

  • 语法说明
DROP CATALOG [IF EXISTS] <catalogName> 
  • 使用示例
drop catalog hive1;
drop catalog if exists  hive1;

SHOW CREATE CATALOG

展示创建 Catalog 的SQL语句。

  • 语法说明
SHOW CREATE CATALOG <calalogName>
  • 使用示例
show create catalog hive1;
  • 返回结果
             Catalog info
--------------------------------------------
CREATE EXTERNAL CATALOG IF NOT EXISTS MYSQL
AS "mysql1"
WITH (
  'username': 'root',
  'password': '***',
  'connect' : "jdbc:mysql://10.5.20.26:3306"
);

SHOW CATALOGS

展示当前集群下面的所有catalogs列表。

  • 语法说明
SHOW CATALOGS [ from <clusterId> ]
  • 使用示例
show catalogs from clusterId;
  • 返回结果
Name         |  Type
-------------+-------------
 hive1       | Hive-Hadoop2
 mysql       |     MySQL   
 pg          |  PostgreSQL

REFRESH CATALOG

刷新Catalog下的元数据信息。

  • 语法说明
ALTER CATALOG <catalogName> REFRESH METADATA
  • 使用示例
alter catalog "catalogName" refresh metadata;