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
- 参数说明
| 关键字 | 类型 | 说明 |
|---|---|---|
| if not exists | SQL关键字,可选 | 若指定,则创建同名的数据源不会报错;若不指定,则报错 |
| connectorType | SQL标识符,必填 | 创建数据源的类型 |
| catalogName | SQL标识符,必填 | 数据源名称 |
| with | key-value 字符串映射,可选 | 创建数据源给出的连接数据源的参数 |
AIR支持的数据源类型:HIVE2, HIVE3, MAX_COMPUTE,ICEBERG, MYSQL,PRESTO, SPARK,CALCITE,PRESTO_JDBC, POSTGRESQL ,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 提供了一些额外的扩展参数:
- 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' - pushdown : 开启查询下推功能,默认为 false。若开启,则设置 'pushdown':'true'
-
collate: 开启 查询下推时配置 MySQL order by 排序规则。比如'collate':'utf8mb4_bin'
-
使用示例
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
删除数据源。
- 语法说明
- 使用示例
SHOW CREATE CATALOG
展示创建 Catalog 的SQL语句。
- 语法说明
- 使用示例
- 返回结果
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列表。
- 语法说明
- 使用示例
- 返回结果
REFRESH CATALOG
刷新Catalog下的元数据信息。
- 语法说明
- 使用示例