创建Hive External Catalog

创建Hive External Catalog 的步骤

  1. 创建存储连接:首先需要创建一个存储连接,用于访问对象存储服务。
  2. 创建 Catalog Connection:使用存储连接信息和 Hive Metastore 地址创建 Catalog Connection。
  3. 创建External Catalog:使用 Catalog Connection 创建外部 Catalog,以便在数据湖中访问外部数据。

语法

CREATE EXTERNAL CATALOG catalog_name
    CONNECTION catalog_api_connection;

参数说明

catalog_api_connection:catalog connection名称。目前只支持HIVE。参考创建catalog conneciton

案例

案例一:Hive ON OSS(支持读取和写入

  • 创建存储连接
CREATE STORAGE CONNECTION if not exists catalog_storage_oss   
 type OSS    
 ACCESS_ID='LTAIxxxxxxxxxxxx'    
 ACCESS_KEY='T8Gexxxxxxmtxxxxxx'   
 ENDPOINT='oss-cn-hangzhou-internal.aliyuncs.com';
CREATE CATALOG CONNECTION if not exists catalog_api_connection    
type hms    
hive_metastore_uris='xxxx:9083'    
storage_connection='catalog_storage_oss';
  • 创建 Catalog
CREATE EXTERNAL CATALOG my_external_catalog
    CONNECTION catalog_api_connection;
  • 验证是否连通Hive Catalog
--验证读取元数据
SHOW SCHEMAS IN my_external_catalog;
+---------------------------------------------------------------------------+
|                                schema_name                                |
+---------------------------------------------------------------------------+
| air_travel                                                                |
| all_data                                                                  |
| automobile                                                                |
| automv_schema                                                             |
| bigquant                                                                  |
+---------------------------------------------------------------------------+

--验证读取数据,读取数据时会使用STORAGE CONNECTION权限读取
SELECT * FROM my_external_catalog.my_schema.my_table;

案例二:Hive ON COS(支持读取和写入

  • 创建存储连接
CREATE STORAGE CONNECTION catalog_storage_cos 
  TYPE COS
  ACCESS_KEY = '<access_key>'
  SECRET_KEY = '<secret_key>'
  REGION = 'ap-shanghai'
  APP_ID = '1310000503';

参数: * TYPE:为对象存储类型,腾讯云应填写 COS(大小写不限) * ACCESS_KEY / SECRET_KEY:为腾讯云的访问密钥,获取方式参考:访问密钥 * REGION:指腾讯云对象存储 COS 的数据中心所在的地域。相同地域内云器Lakehouse访问腾讯云COS时,COS服务将自动路由至内网访问。具体取值请参考腾讯云文档:地域和访问域名

CREATE CATALOG CONNECTION if not exists catalog_api_connection    
type hms    
hive_metastore_uris='xxxx:9083'    
storage_connection='catalog_storage_cos';
CREATE CATALOG CONNECTION if not exists catalog_api_connection    
type hms    
hive_metastore_uris='xxxx:9083'    
storage_connection='catalog_storage_oss';
  • 创建 Catalog
CREATE EXTERNAL CATALOG my_external_catalog
    CONNECTION catalog_api_connection;
  • 验证是否连通Hive Catalog
--验证读取元数据
SHOW SCHEMAS IN my_external_catalog;
+---------------------------------------------------------------------------+
|                                schema_name                                |
+---------------------------------------------------------------------------+
| air_travel                                                                |
| all_data                                                                  |
| automobile                                                                |
| automv_schema                                                             |
| bigquant                                                                  |
+---------------------------------------------------------------------------+

--验证读取数据,读取数据时会使用STORAGE CONNECTION权限读取
SELECT * FROM my_external_catalog.my_schema.my_table;

案例三:Hive ON S3 (支持读取和写入

  • 创建存储连接
CREATE STORAGE CONNECTION catalog_storage_s3
    TYPE S3
    ACCESS_KEY = 'AKIAQNBSBP6EIJE33***'
    SECRET_KEY = '7kfheDrmq***************************'
    ENDPOINT = 's3.cn-north-1.amazonaws.com.cn'
    REGION = 'cn-north-1';

参数

  • TYPE:为对象存储类型,AWS 应填写 S3(大小写不限)
  • ACCESS_KEY / SECRET_KEY:为AWS 的访问密钥,获取方式参考:访问密钥
  • ENDPOINT: S3 的服务地址,AWS 中国区分为北京区和宁夏区,北京区的S3 的服务地址为 s3.cn-north-1.amazonaws.com.cn, 宁夏区 s3.cn-northwest-1.amazonaws.com.cn,可参考:中国区终端节点 分别找到北京区域和宁夏区域的终端节点 -> Amazon S3 对应的终端节点
  • REGION:AWS 中国区分为北京区和宁夏区,区域值为:北京区 cn-north-1, 宁夏区 cn-northwest-1,可参考:中国区终端节点
  • 创建 Catalog Connection
CREATE CATALOG CONNECTION if not exists catalog_api_connection    
type hms    
hive_metastore_uris='xxxx:9083'    
storage_connection='catalog_storage_s3';
  • 创建 Catalog
CREATE EXTERNAL CATALOG my_external_catalog
    CONNECTION catalog_api_connection;
  • 验证是否连通Hive Catalog
--验证读取元数据
SHOW SCHEMAS IN my_external_catalog;
+---------------------------------------------------------------------------+
|                                schema_name                                |
+---------------------------------------------------------------------------+
| air_travel                                                                |
| all_data                                                                  |
| automobile                                                                |
| automv_schema                                                             |
| bigquant                                                                  |
+---------------------------------------------------------------------------+

--验证读取数据,读取数据时会使用STORAGE CONNECTION权限读取
SELECT * FROM my_external_catalog.my_schema.my_table;

案例四:Hive ON HDFS(支持读取

  • 创建存储连接
    CREATE STORAGE CONNECTION hdfs_conn
    TYPE HDFS
    NAME_NODE='zetta-cluster'
    NAME_NODE_RPC_ADDRESSES=['11.110.239.148:8020'];
    • TYPE HDFS :指定连接类型为 HDFS。
    • NAME_NODE :对应 HDFS 配置中的dfs.nameservices,是 HDFS 集群的逻辑名称,例如zetta-cluster
    • NAME_NODE_RPC_ADDRESSES :对应 HDFS 配置中的dfs.namenode.rpc-address,是 NameNode 的 RPC 地址,格式为[<host>:<port>],例如['11.110.239.148:8020']
  • 创建 Catalog Connection
CREATE CATALOG CONNECTION if not exists catalog_api_connection    
type hms    
hive_metastore_uris='xxxx:9083'    
storage_connection='hdfs_conn';
  • 创建 Catalog
CREATE EXTERNAL CATALOG my_external_catalog
    CONNECTION catalog_api_connection;
  • 验证是否连通Hive Catalog
--验证读取元数据
SHOW SCHEMAS IN my_external_catalog;
--验证读取数据,读取数据时会使用STORAGE CONNECTION权限读取
SELECT * FROM my_external_catalog.my_schema.my_table;

创建Databricks External Catalog

创建Databricks External Catalog 的步骤

  1. 创建 Catalog Connection:存储 Databricks的Unity Catalog,连接认证信息。
  2. 创建External Catalog:使用 Catalog Connection 创建外部 Catalog,以便在数据湖中访问外部数据。

语法

CREATE EXTERNAL CATALOG catalog_name
    CONNECTION catalog_api_connection;
    OPTIONS ('catalog'='catalog_name');

参数说明

  • catalog_name :外部 Catalog 的名称。该名称用于标识 Catalog,需唯一且符合命名规范。
  • catalog_api_connection :指定与外部 Catalog 的连接。catalog_api_connection 是预先创建的连接名称,用于访问外部 Catalog。
  • OPTIONS :指定外部 Catalog 的配置选。'catalog'='catalog_name':表示外部 Catalog 的名称,catalog_name 是目标 Catalog 的名称。

联系我们
预约咨询
微信咨询
电话咨询