External Catalog采集方式

数据地图针对External Catalog的元数据采集目前为间接关联形式,如果您在StarRocks类型数据库中已使用External Catalog能力,并期望在数据地图中通过StarRocks数据源类型为来源,查看其External Catalog下的表及元数据详情,可通过本文进行操作配置。配置并采集完成后,可利用数据地图的搜索功能,搜索和查看StarRocks External Catalog所关联的表、字段等元数据信息。

背景信息

当用户在DataWorks中配置StarRocks数据源并启动元数据采集后,数据地图默认仅针对StarRocks内部Catalog进行元数据获取。如用户期望获取StarRocks External Catalog相应元数据,需用户同时在DataWorks中配置目录所关联的数据源连接,并进行元数据采集。采集完成后,数据地图将自动进行元数据关联,用户可在StarRocks类型来源中查看External Catalog及其关联元数据。

前提条件

使用限制

  • 暂不支持外部目录为Elasticsearch Catalog类型。

  • 暂不支持外部目录来源为OSS的Paimon Catalog类型。

操作步骤

以StarRocks中MySQL External Catalog为例,您如配置某MySQL_DB为mysql_catalog_db,则需您在数据地图中配置并建立MySQL类型元数据采集器,采集MySQL_DB相应元数据信息后,对应StarRocks中的mysql_catalog_db下元数据信息亦可被搜索和查看。

步骤一:数据准备

创建MySQL数据源

创建MySQL数据源,数据库名为mysql_catalog_db,并创建示例表mysql_catalog_table,示例脚本如下:

CREATE TABLE mysql_catalog_table(
  catalog_table_id INT,
  catalog_table_name VARCHAR(255)
)

准备MySQL JDBC驱动包

您需将对应版本的MySQL JDBC驱动上传到OSS中。

  1. 将与您MySQL版本一致的JDBC驱动JAR包上传到OSS中,您需登录OSS管理控制台,单击所在地域左侧导航栏的Bucket列表

  2. 单击目标Bucket名称,进入文件管理页面。本文示例使用的Bucket为catalog-bucket-oss

  3. 单击新建目录,创建JAR包的存放目录。配置目录名libs,创建JAR资源的存放目录。

  4. 进入JDBC驱动JAR包的存放目录。单击上传文件,在待上传文件区域单击扫描文件,添加JDBC驱动JAR包mysql-connector-java-8.0.28.jar文件至Bucket,单击上传文件

  5. 找到您所上传的JDBC驱动JAR包文件,单击文件对应的操作项的详情,单击详情页面的设置读写权限,进入设置读写权限页面,将文件权限设置为公共读写,单击确定以供后续配置外部引用。

步骤二:外部数据源连接配置

  1. 登录StarRocks实例查询列表。

    1. 登录EMR管理控制台,单击进入EMR Serverless > StarRocks里面的实例列表

    2. 找到您所创建的StarRocks实例,单击操作列中的连接实例。进入新建连接页签。

    3. 在新建连接页签选择您创建StarRocks实例时,选择的地域、创建的实例名称信息,输入连接名称用户名密码信息,单击测试连通性。连接成功后,点击确定后进入StarRocks实例查询列表

  2. 在StarRocks数据源配置MySQL外部连接。

    1. 单击查询列表下面的+文件创建按钮,进入新建文件对话框,输入名称、选择存储路径,单击确定创建文件。

    2. 选择全部文件下你所创建的文件名,进入到StarRocks实例编辑页面,输入MySQL数据源为StarRocks外部连接脚本,详情请参见StarRocks配置External Catalog示例说明

      CREATE EXTERNAL CATALOG mysql_db_catalog PROPERTIES (
          "driver_class" = "com.mysql.cj.jdbc.Driver", 
          "driver_url" = "https://catalog-bucket-oss.oss-cn-hangzhou-internal.aliyuncs.com/libs/mysql-connector-java-8.0.28.jar", 
          "type" = "jdbc", 
          "user" = "<UserName>", 
          "password"="<PassWord>",
          "jdbc_uri" = "jdbc:mysql://xxx:3306/mysql_catalog_db" );
      说明
      • mysql_db_catalog参数为您为MySQL数据源创建的外部存储数据目录名称。

      • UserNamePassWord信息您需根据实际情况填写。

      • jdbc_uri:您需填写您所创建的数据库链接路径。

    3. 编辑完成后,您可单击运行脚本,等待执行成功后,您可在数据库页签查看相关表信息。

      image

步骤三:数据源配置

  1. 您需登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的工作空间,在工作空间列表选择您所创建的工作空间,单击操作栏中的管理,进入管理中心

  2. 在管理中心页面单击左侧导航栏的数据源 > 数据源列表,在数据源页面添加配置您所创建的StarRocks数据源与MySQL数据源,详情请参见配置StarRocks数据源配置MySQL数据源

    说明

    MySQL数据源配置模式需选择连接串模式。同样您选择的外部数据源为JDBC类型的,配置模式都需选择连接串模式。

步骤四:元数据采集配置

您需登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据目录 > 数据地图,单击进入数据地图。在数据地图中配置元数据采集。

采集StarRocks内部目录的采集配置

  1. 找到数据地图左侧的image图标,单击StarRocks数据源的管理按钮。

    image

  2. 进入到StarRocks元数据采集配置页面,单击切换到未采集列表页签,输入您所在工作空间以及工作空间管理里面配置的StarRocks数据源名称

    image

  3. 配置元数据采集。

    选择您所创建的资源组名称、点击测试连通性,等待连通性测试成功,设置采集计划,单击确认完成元数据采集配置。

  4. 运行元数据采集。

    单击切换到已采集列表页签,找到您所设置的采集计划。单击右侧操作栏中的运行。等待采集计划状态变为运行成功

采集StarRocks External Catalog相关的MySQL元数据

同理您需参照步骤四:元数据采集配置,完成MySQL数据源元数据采集。否则无法搜索到MySQL数据源External Catalog信息。

说明

MySQL数据源元数据采集的已创建采集器的数据源选择MySQL

步骤五:元数据搜索

等待StarRocks元数据采集任务、MySQL元数据采集任务执行完成,单击左侧image图标进入搜索页。

  1. 找到类型页面,在数据源页签下选择StarRocks数据源,在筛选条件里面下拉选择您所创建的StarRocks实例、您为MySQL数据源创建的外部存储数据目录名称、以及对应的MySQL数据库。您可在StarRocks数据源中查看MySQL Catalog信息。结果如下:

    image

  2. 您也可找到类型页面,在数据源页签下选择MySQL数据源,在筛选条件里面下拉选择您所创建的MySQL数据库名称,验证表信息是否一致。

    image

  3. 查看表详情信息。

    您可单击如下图所示位置查看表详情信息。

    image

    详情信息如下:

    image

StarRocks配置External Catalog示例说明

StarRocks配置External Catalog示例,语法如下所示:

CREATE EXTERNAL CATALOG <Catalog_Name> COMMENT '' PROPERTIES("type"="","xxx1"="","xxx2"="");
说明

Catalog_Name参数为外部存储数据目录名称。可自定义命名。

StarRocks配置External Catalog示例如下,详情请参见数据目录

采集方式

连接方式

StarRocks配置External Catalog示例

Default Catalog

default

保存在StarRocks中的数据,默认可以查询。详情请参见Catalog概述

ODPS Catalog

VPC

CREATE EXTERNAL CATALOG cwy_odps_vpc_hangzhou_catalog PROPERTIES(
    "type"="odps",
    "odps.access.id"="<AccessId>",
    "odps.access.key"="<AccessKey>",
    "odps.endpoint"="http://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api",
    "odps.project"="<ODPSProject>"
);
说明

您在使用过程中,需要将AccessIdAccessKeyODPSProject替换成您所使用的真实值。EndPoint示例值为http://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api,您也可根据数据源所在地域在MaxCompute各地域Endpoint对照表中查看,详情请参见Endpoint

Hive Catalog

Hive Metastore (HMS)

CREATE EXTERNAL CATALOG `hive_catalog_hms` PROPERTIES (
    "hive.metastore.type" = "hive", 
    "hive.metastore.uris" = "thrift://192.xxx.xxx.xxx:9083", 
    "type" = "hive" 
);
说明

hive.metastore.uris对应的参数信息,您需替换成您所使用的真实值。您可在创建的Hive源的hive-site.xml配置文件下找到hive.metastore.uris对应的参数信息。

Data Lake Framework (DLF)

CREATE EXTERNAL CATALOG `hive_catalog_dlf` PROPERTIES (
    "hive.metastore.type" = "dlf", 
    "dlf.catalog.id"="123456",
    "type" = "hive" 
);
说明

dlf.catalog.id对应的参数信息,您需替换成您所使用的真实值。您可在创建的Hive源的hive-site.xml配置文件下找到dlf.catalog.id应的参数信息。

Iceberg Catalog

Hive

CREATE EXTERNAL CATALOG iceberg_catalog_by_hms 
PROPERTIES (
  "iceberg.catalog.type"  =  "hive",
  "hive.metastore.uris"  =  "thrift://192.xxx.xxx.xxx:9083",
  "type"  =  "iceberg"
);
说明

使用Hive MetaStore作为元数据服务的Iceberg外部Catalog,hive.metastore.uris对应的参数信息,您需替换成您所使用的真实值。您可在创建的Hive源的hive-site.xml配置文件下找到hive.metastore.uris对应的参数信息。

Hudi Catalog

Hive

CREATE EXTERNAL CATALOG hudi_catalog_by_hms 
PROPERTIES (
  "hive.metastore.type"  =  "hive",
  "hive.metastore.uris"  =  "thrift://192.xxx.xxx.xxx:9083",
  "type"  =  "hudi"
);
说明

使用Hive MetaStore作为元数据服务的Hudi外部Catalog,hive.metastore.uris对应的参数信息,您需替换成您所使用的真实值。您可在创建的Hive源的hive-site.xml配置文件下找到hive.metastore.uris对应的参数信息。

Data Lake Framework (DLF)

CREATE EXTERNAL CATALOG hudi_catalog_by_dlf
PROPERTIES (
  "hive.metastore.type" ="dlf",
  "dlf.catalog.id"="123456",
  "type"  =  "hudi"
);
说明

使用dlf为元数据服务的Hudi外部Catalog,dlf.catalog.id对应的参数信息,您需替换成您所使用的真实值。您可在创建的Hive源的hive-site.xml配置文件下找到dlf.catalog.id应的参数信息。

Delta Lake Catalog

Hive

CREATE EXTERNAL CATALOG `deltalake_hive` PROPERTIES (
    "hive.metastore.type" = "hive", 
    "hive.metastore.uris" = "thrift://192.xxx.xxx.xxx:9083",
    "type" = "deltalake" ,
    "aliyun.oss.access_key" = "<AccessId>",
    "aliyun.oss.secret_key" = "<AccessKey>",
    "aliyun.oss.endpoint" = "<EndPoint>" 
);
说明
  • hive.metastore.uris对应的参数信息,您需替换成您所使用的真实值。您可在创建的Hive源的hive-site.xml配置文件下找到hive.metastore.uris对应的参数信息。

  • 需要将AccessIdAccessKey替换成您所使用的真实值。

  • EndPoint您也可根据数据源所在地域在OSS各地域Endpoint对照表中查看,详情请参见OSS地域和访问域名。示例值为http://oss-cn-hangzhou-internal.aliyuncs.com

Data Lake Framework (DLF)

CREATE EXTERNAL CATALOG `deltalake_dlf` PROPERTIES (
    "hive.metastore.type" = "dlf", 
    "dlf.catalog.id"="123456",
    "type" = "deltalake" 
);
说明

dlf.catalog.id对应的参数信息,您需替换成您所使用的真实值。您可在创建的Hive源的hive-site.xml配置文件下找到dlf.catalog.id应的参数信息。

JDBC Catalog

MySQL

CREATE EXTERNAL CATALOG cwy_mysql_db_catalog PROPERTIES (
    "driver_class" = "com.mysql.cj.jdbc.Driver", 
    "driver_url" = "https://bucket-hz.oss-cn-hangzhou-internal.aliyuncs.com/libs/mysql-connector-java-8.0.28.jar", 
    "type" = "jdbc", 
    "user" = "<UserName>", 
    "password"="<PassWord>",
    "jdbc_uri" = "jdbc:mysql://xxx:3306/<database>" );
说明
  • driver_url:将对应的驱动JAR包存放至当前地域所在OSS中的下载路径,如需上传下载OSS对应驱动JAR包文件,详情可参见简单下载

  • UserNamePassWord信息您需根据实际情况填写。

  • jdbc_uri:您需填写您所创建的数据库链接路径。database选择您所创建的数据库名。

PostgreSQL

CREATE EXTERNAL CATALOG `cwy_postgressql_db_catalog` PROPERTIES (
    "driver_class" = "org.postgresql.Driver", 
    "driver_url" = "https://bucket-hz.oss-cn-hangzhou-internal.aliyuncs.com/libs/postgresql-42.3.3.jar", 
    "type" = "jdbc", 
    "user" = "<UserName>", 
    "password"="<PassWord>",
    "jdbc_uri" = "jdbc:postgresql://xxxx:5432/<database>" );
说明
  • driver_url:将对应的驱动JAR包存放至当前地域所在OSS中的下载路径,如需上传下载OSS对应驱动JAR包文件,详情可参见简单下载

  • UserNamePassWord信息您需根据实际情况填写。

  • jdbc_uri:您需填写您所创建的数据库链接路径。database选择您所创建的数据库名。

Paimon Catalog

Hive(StarRocks3.1 版本起支持)

CREATE EXTERNAL CATALOG paimon_by_hive
COMMENT ''
PROPERTIES (
  "type" = "paimon",
  "paimon.catalog.warehouse" = "oss://bucket-hz/paimon_warehouse/",
  "paimon.catalog.type" = "hive",
  "hive.metastore.uris" = "thrift://192.xxx.xxx.xxx:9083"
);
说明

采用Hive作为管理元数据的Paimon Catalog。

  • paimon.catalog.warehouse:Paimon数据湖框架中的一个配置属性,用于指定数据仓库的根路径。

  • hive.metastore.uris:您可在创建的Hive源的hive-site.xml配置文件下找到hive.metastore.uris应的参数信息。

Data Lake Framework (DLF,StarRocks3.1 版本起支持)

CREATE EXTERNAL CATALOG paimon_by_dlf
PROPERTIES (
  "type" = "paimon",
  "paimon.catalog.type" = "dlf",
  "paimon.catalog.warehouse" = "oss://bucket-hz/paimon_warehouse/",
  "aliyun.oss.endpoint" = "EndPoint",
  "dlf.catalog.id"="123456"
);
说明

采用dlf作为管理元数据的Paimon Catalog。

  • paimon.catalog.warehouse:Paimon数据湖框架中的一个配置属性,用于指定数据仓库的根路径。

  • EndPoint您也可根据数据源所在地域在OSS各地域Endpoint对照表中查看,详情请参见OSS地域和访问域名。示例值为oss-cn-hangzhou-internal.aliyuncs.com

  • dlf.catalog.id:您可在创建的Hive源的hive-site.xml配置文件下找到dlf.catalog.id应的参数信息。

Unified Catalog

Hive(StarRocks3.2版本起支持)

CREATE EXTERNAL CATALOG unified_by_dlf
PROPERTIES (
  "type" = "unified",
  "unified.metastore.type" = "hive",
  "hive.metastore.uris" = "thrift://192.xxx.xxx.xxx:9083"
);
说明

采用Hive作为管理元数据的Unified Catalog。

hive.metastore.uris:您可在创建的Hive源的hive-site.xml配置文件下找到hive.metastore.uris相应的参数信息。