You need to enable JavaScript to run this app.
导航
最佳实践:集成 LAS Catalog 数据
最近更新时间:2025.07.18 10:13:07首次发布时间:2025.04.01 17:07:47
复制全文
我的收藏
有用
有用
无用
无用

本文档介绍如何在 ByteHouse CDW 中通过外表访问 LAS Catalog 上的数据,实现数据无需导入 ByteHouse,并利用 ByteHouse 的数仓加速能力来提升数据处理效率。

前提条件

确保您执行外表操作的火山引擎账号已获得以下权限:

  • LAS(火山引擎 AI 数据湖服务,Lake AI Service) Catalog 的访问权限,以及库表级别读写权限。
  • 向 LAS 中写入数据时,还需拥有 TOS(火山引擎对象存储服务,Torch Object Storage) 访问权限、TOS 需开通 HNS(分层桶)功能。
    Image

背景信息

LAS Catalog 数据组织结构是以 Catalog / Database / Table 为层次3层数据结构,以如下结构为例:

catalog: benchmark
database: ssb100parquet
table: lineorder_flat

这表示数据存储在 benchmark catalog 的 ssb100parquet 数据库下的 lineorder_flat 表中。
Image

在 ByteHouse 配置 LAS 外表

配置外表

以下示例将在 ByteHouse 中的 ext 数据库中创建表 las,并将该表映射到 LAS 中 benchmark catalog 的表 ssb100parquet.lineorder_flat。您可在ByteHouse 执行以下 SQL 命令创建外表。

CREATE DATABASE IF NOT EXISTS ext

CREATE TABLE ext.las
ENGINE = CnchHive('thrift://lakeformation.las.{REGION}.ivolces.com:48869', 'ssb100parquet', 'lineorder_flat')
SETTINGS 
    meta_type = 'lf',
    lf_metastore_catalog = 'benchmark', 
    lf_metastore_region = '{REGION}', 
    lf_metastore_ak_id = 'AKLTMjNkMDRlMXXXXXXXXXXWUzZ******',
    lf_metastore_ak_secret='WVXXXXXXXXXXXXXXXXXX******', 
    lf_metastore_url = 'thrift://lakeformation.las.{REGION}.ivolces.com:48869',
    endpoint = 'tos-s3-{REGION}.ivolces.com', 
    ak_id = 'AKLTMjNkMDRlMXXXXXXXXXXWUz******', 
    ak_secret='WVXXXXXXXXXXXXXXXXXX******';

参数说明如下:

  • thrift://lakeformation.las.{REGION}.ivolces.com:48869:指定 LAS 所在可用地域的连接地址,您可根据您使用的地域,参考以下内容进行修改参考:

    region

    lf_metastore_url

    cn-beijing

    thrift://lakeformation.las.cn-beijing.ivolces.com:48869

    cn-shanghai

    thrift://lakeformation.las.cn-shanghai.ivolces.com:48869

    cn-guangzhou

    thrift://lakeformation.las.cn-guangzhou.ivolces.com:48869

  • ssb100parquetlineorder_flat: 表示创建的外表映射到 LAS 中的 ssb100parquet.lineorder_flat 表。在使用时,您可将该库表名替换为实际的库表名。

  • meta_type :固定为 lf,标识创建的外表是映射到 LAS 的 Catalog 中。

  • lf_metastore_catalog = 'benchmark':表示创建的外表映射到 LAS 中名为 benchmark 的 catalog。在使用时,您可将该 catalog 名替换为实际名称。您可登录 LAS 控制台,在左侧导航栏中,单击数据库 > 元数据管理,查看 Catalog 名称。

  • LAS 的认证参数:填写您使用 LAS 服务所在的地域、Access Key ID 以及 Secret Access Key 信息,用来访问 LAS 中表的元信息。获取方式如下:

    • lf_metastore_region:可参考 thrift://lakeformation.las.{REGION}.ivolces.com:48869 表格中的 region 信息填写。
    • lf_metastore_ak_idlf_metastore_ak_secret:配置为 LAS 的 Access Key ID 及 Secret Access Key,获取方式请参见 AccessKey(密钥)管理
      lf_metastore_region = '{REGION}',
      lf_metastore_ak_id = 'AKLTMjNkMDRlMXXXXXXXXXXdkYzM4OWUzZD******',
      lf_metastore_ak_secret='USDCWEDSDCSXXXXXXXXXXXXXD******',
      
  • LAS 使用的数据存储 TOS 信息:填写 LAS 使用的 TOS 账号的endpoint、Access Key ID 以及 Secret Access Key,用于访问 TOS 中表的实际存储数据。获取方式及示例如下:

    • endpoint:配置为 LF 使用的 TOS 服务 endpoint。可使用的服务端点列表请参见地域与访问域名(Endpoint)中 S3 Endpoint 列的信息。
    • ak_id、ak_secret:配置为 LF 使用的 TOS 服务的 Access Key ID 及 Secret Access Key。获取方式请参见 AccessKey(密钥)管理
      endpoint = 'tos-s3-{REGION}.ivolces.com', 
      ak_id = 'AKLTMjNkMDRlMXXXXXXXXXXdkYzM4OWUzZD******', 
      ak_secret='USDCWEDSDCSXXXXXXXXXXXXX******',
      

常用操作

在 ByteHouse 中执行查看表的列信息:

DESCRIBE TABLE ext.las

在 ByteHouse 配置 LAS Catalog

配置 Catalog

CREATE EXTERNAL CATALOG `las_catalog` PROPERTIES 
    aws.s3.endpoint='tos-s3-{REGION}.ivolces.com', 
    aws.s3.access_key='AKLTMjNkMDRlMXXXXXXXXXXWUzZ******', 
    aws.s3.secret_key='WVXXXXXXXXXXXXXXXXXX******', 
    lf_metastore_ak_id='AKLTMjNkMDRlMXXXXXXXXXXWUzZ******',
    lf_metastore_ak_secret='WVXXXXXXXXXXXXXXXXXX******', 
    lf_metastore_catalog='benchmark', 
    lf_metastore_region='{REGION}', 
    lf_metastore_url = 'thrift://lakeformation.las.{REGION}.ivolces.com:48869',
    type='lf';

参数说明如下:

  • LAS 使用的数据存储 TOS 信息:填写 LAS 使用的 TOS 账号的endpoint、Access Key ID 以及 Secret Access Key,用于访问 TOS 中表的实际存储数据。获取方式及示例如下:
    • aws.s3.endpoint:配置为 LF 使用的 TOS 服务 endpoint。可使用的服务端点列表请参见地域与访问域名(Endpoint)中 S3 Endpoint 列的信息。
    • aws.s3.access_keyaws.s3.secret_key:配置为 LF 使用的 TOS 服务的 Access Key ID 及 Secret Access Key。获取方式请参见 AccessKey(密钥)管理
  • LAS 的认证参数:填写您使用 LAS 服务所在的地域、endpoint、Access Key ID 以及 Secret Access Key 信息,用来访问 LAS 中表的元信息。获取方式如下:
    • lf_metastore_ak_idlf_metastore_ak_secret:配置为 LasFormation 的 Access Key ID 及 Secret Access Key,获取方式请参见 AccessKey(密钥)管理
    • lf_metastore_region:修改为地域信息,可参见配置外表中 LAS 连接地址说明中的 region 信息填写。
    • lf_metastore_url:修改为 LAS 的 endpoint 地址,填写格式为 thrift://lf_thrift_server_ip:port,获取方式请参见配置外表中 LAS 连接地址说明。
  • lf_metastore_catalog:表示创建的外表映射到 LAS 中名为 benchmark 的 catalog。在使用时,您可将该 catalog 名替换为实际名称。您可登录 LAS 控制台,在左侧导航栏中,单击数据库 > 元数据管理,查看 Catalog 名称。

常用操作

  • 访问 LAS 中的表
    您可以通过 catalog_name.db_name.table_name 这种三段式命名方式直接访问 LAS 中的表,示例如下:

    select count() from las_catalog.ssb100parquet.lineorder_flat
    
  • 列出 LAS Catalog 中的数据库名

    show databases from las_catalog 
    
  • 列出数据库中的表名

    show tables from las_catalog.ssb100parquet 
    
  • 获取表的创建语句

    show create table las_catalog.ssb100parquet.lineorder_flat
    
  • 写入数据
    创建完成 Catalog 后,可向 LasFormation 表中写入数据,写入示例如下:

    注意

    写入 LasFormation 表前请确认:

    • 拥有 LasFormation 访问权限;
    • 拥有 TOS 访问权限
    • TOS 开通 HNS(分层桶)功能
    • 目前 CDW 不支持未开通的 HNS 的 TOS Bucket 写入,更多关于 TOS Bucket 的 HNS 的介绍请参见TOS帮助文档
    insert into/overwrite las_catalog values (xxx);
    insert into/overwrite las_catalog select * from xxx settings enable_optimizer =1;