本文介绍使用External Catalog读取LAS数据。通过创建 LAS Catalog,您不需要执行数据导入就可以直接查询 LAS里的数据。
说明
目前读取LAS数据功能需要开白使用,如需操作请通过 提工单 的方式,联系火山引擎技术支持人员。
LAS(Lakehouse Analytics Service) 是一种数据湖解决方案,目标是简化和加速数据湖的建设和管理过程。通过提供的统一元数据管理、数据访问控制、元数据发现和数据集成等关键功能,帮助组织打破数据孤岛,加强湖仓体系建设,更好地组织、共享、访问和分析大规模企业数据。详细说明可参考官方文档。
如下以数据存储在TOS为例。
CREATE EXTERNAL CATALOG <catalog_name> [COMMENT <comment>] PROPERTIES ( "type" = "hive", "hive.metastore.type" = "las", "hive.metastore.uris" = "thrift://<LAS Catalog Hive MetaStore的IP地址>:48869", "las.hive.metastore.service" = "catalog_service" "las.hive.metastore.region" = "<LAS Catalog region>", "las.hive.metastore.access.key" = "<LAS Catalog ak>", "las.hive.metastore.secret.key" = "<LAS Catalog sk>", "aws.s3.enable_ssl" = "false", "aws.s3.region" = "<tos_region}>", "aws.s3.use_instance_profile" = "false", "aws.s3.use_aws_sdk_default_behavior" = "false", "aws.s3.endpoint" = "<tos_endpoint>", "aws.s3.access_key" = "<tos_access_key>", "aws.s3.secret_key" = "<tos_secret_key>" )
参数 | 必选 | 说明 |
---|---|---|
catalog_name | 是 | 外挂到LAS Catalog的catalog名称,命名要求如下:
|
comment | 否 | 外挂到LAS Catalog的catalog描述。 |
las.hive.metastore.region | 是 | LAS Catalog 实例地域,参考官网文档。 |
hive.metastore.uris | 是 | Hive MetaStore的URI。格式为 |
las.hive.metastore.access.key | 是 | 访问LAS元数据的AK。需要有LAS Catalog相关库表权限。具体可以参考LAS官网快速入门和权限管理给某个子用户授权,之后给该子用户创建ak/sk即可。该步骤请参考访问密钥。 |
las.hive.metastore.secret.key | 是 | 访问LAS元数据的SK。需要有LAS Catalog相关库表权限。具体可以参考LAS官网快速入门和权限管理给某个子用户授权,之后给该子用户创建ak/sk即可。该步骤可以参考访问密钥。 |
aws.s3.region | 是 | TOS桶实例所在的地区。参考地域和访问域名(Endpoint),一般和上面las.hive.metastore.region为一个地址。 |
aws.s3.endpoint | 是 | TOS桶实例所在的地区,参考TOS相关文档。注意这里需要填写s3 Endpoint。另外如果tos和lasformation是同一region建议用内网地址。 |
aws.s3.access_key | 是 | TOS使用的AK。 |
aws.s3.secret_key | 是 | TOS使用的SK。 |
通过DROP CATALOG可以删除指定的外挂到LAS Catalog的catalog。
DROP CATALOG <catalog_name>
创建好外挂到LAS Catalog的catalog后,我们可以通过它访问las数据。
假设我们创建的catalog_name为las
。
set catalog las;
如下以sr_demo
数据库为例,用户需将sr_demo
替换为实际数据库。
USE sr_demo;
如下以sr_demo_test
表为例,用户需将sr_demo_test
替换为实际数据表。
DESC sr_demo_test; SHOW CREATE TABLE sr_demo_test;
如下以sr_demo_test
表为例,用户需将sr_demo_test
替换为实际数据表。
SELECT * FROM sr_demo_test LIMIT 10;
假设有一个 OLAP 表,在库olap_db
下,表名为 olap_tbl
。您可以这样来转换该表中的数据,并把数据导入到 StarRocks 中:
INSERT INTO default_catalog.olap_db.olap_tbl SELECT * FROM las.sr_demo.sr_demo_test;
DROP CATALOG las;
和开源Hive catalog逻辑一致,目前StarRocks会缓存元数据,参考StarRocks文档。如果遇到需要手动刷新缓存的场景,可以执行如下语句。
refresh external table <table_name>;