Paimon Catalog
StarRocks 从 v3.1 版本开始支持 Paimon Catalog。
Paimon Catalog 是一种外部 Catalog,使您无需导入即可从 Apache Paimon 查询数据。
此外,您还可以通过基于 Paimon Catalog 使用 INSERT INTO 直接转换和加载 Paimon 中的数据。
为确保在 Paimon 集群上成功运行 SQL 工作负载,您的 StarRocks 集群必须能够访问 Paimon 集群的存储系统和 Metastore。 StarRocks 支持以下存储系统和 Metastore:
- 分布式文件系统 (HDFS) 或对象存储,例如 AWS S3、Microsoft Azure Storage、Google GCS 或其他 S3 兼容的存储系统(例如 MinIO)。
- Metastore,例如您的文件系统或 Hive Metastore。
使用说明
您只能使用 Paimon Catalog 查询数据。 您无法使用 Paimon Catalog 删除数据,或者将数据插入您的 Paimon 集群中。
集成准备
在创建 Paimon Catalog 之前,请确保您的 StarRocks 集群可以与 Paimon 集群的存储系统和 Metastore 集成。
AWS IAM
如果您的 Paimon 集群使用 AWS S3 作为存储,请选择您合适的身份验证方法并做好必要的准备,以确保您的 StarRocks 集群可以访问相关的 AWS 云资源。
建议使用以下身份验证方法
- 实例 profile(推荐)
- Assume Role
- IAM 用户
在上述三种身份验证方法中,实例配置文件使用最广泛。
更多信息,请参见AWS IAM 中基于 IAM 用户的身份验证的准备工作。
HDFS
如果您选择 HDFS 作为存储,请按如下方式配置您的 StarRocks 集群
- (可选)设置用于访问 HDFS 集群和 Hive Metastore 的用户名。 默认情况下,StarRocks 使用 FE 和 BE 或 CN 进程的用户名来访问您的 HDFS 集群和 Hive Metastore。 您还可以通过在每个 FE 的 fe/conf/hadoop_env.sh 文件开头以及每个 BE 的 be/conf/hadoop_env.sh 文件或每个 CN 的 cn/conf/hadoop_env.sh 文件开头添加
export HADOOP_USER_NAME="<user_name>"
来设置用户名。 在这些文件中设置用户名后,重新启动每个 FE 和每个 BE 或 CN 以使参数设置生效。 您只能为每个 StarRocks 集群设置一个用户名。 - 当您查询 Paimon 数据时,StarRocks 集群的 FE 和 BE 或 CN 会使用 HDFS 客户端访问您的 HDFS 集群。 在大多数情况下,您无需配置 StarRocks 集群即可实现该目的,StarRocks 会使用默认配置启动 HDFS 客户端。 您仅在以下情况下需要配置 StarRocks 集群:
- HDFS 集群已启用高可用性 (HA):将 HDFS 集群的 hdfs-site.xml 文件添加到每个 FE 的 $FE_HOME/conf 路径以及每个 BE 的 $BE_HOME/conf 路径或每个 CN 的 $CN_HOME/conf 路径。
- HDFS 集群启用了 View File System (ViewFs):将 HDFS 集群的 core-site.xml 文件添加到每个 FE 的 $FE_HOME/conf 路径以及每个 BE 的 $BE_HOME/conf 路径或每个 CN 的 $CN_HOME/conf 路径。
注意
如果在发送查询时返回指示未知主机的错误,则必须将您的 HDFS 集群节点的 hostname 和 IP 地址之间的映射添加到 /etc/hosts 路径。
Kerberos 身份验证
如果您的 HDFS 集群或 Hive Metastore 启用了 Kerberos 身份验证,请按如下方式配置您的 StarRocks 集群
- 在每个 FE 和每个 BE 或 CN 上运行
kinit -kt keytab_path principal
命令,以从密钥分发中心 (KDC) 获取票证授予票证 (TGT)。 要运行此命令,您必须具有访问 HDFS 集群和 Hive Metastore 的权限。 请注意,使用此命令访问 KDC 对时间敏感。 因此,您需要使用 cron 定期运行此命令。 - 将
JAVA_OPTS="-Djava.security.krb5.conf=/etc/krb5.conf"
添加到每个 FE 的 $FE_HOME/conf/fe.conf 文件以及每个 BE 的 $BE_HOME/conf/be.conf 文件或每个 CN 的 $CN_HOME/conf/cn.conf 文件。 在此示例中,/etc/krb5.conf
是 krb5.conf 文件的保存路径。 您可以根据需要修改路径。
创建 Paimon Catalog
语法
CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
"type" = "paimon",
CatalogParams,
StorageCredentialParams,
)
参数
catalog_name
Paimon Catalog 的名称。 命名约定如下:
- 该名称可以包含字母、数字 (0-9) 和下划线 (_)。它必须以字母开头。
- 该名称区分大小写,长度不能超过 1023 个字符。
comment
Paimon Catalog 的描述。 此参数是可选的。
type
您的数据源的类型。 将值设置为 paimon
。
CatalogParams
一组关于 StarRocks 如何访问您的 Paimon 集群元数据的参数。
下表描述了您需要在 CatalogParams
中配置的参数。
参数 | 必需 | 描述 |
---|---|---|
paimon.catalog.type | 是 | 您用于 Paimon 集群的 Metastore 的类型。 将此参数设置为 filesystem 或 hive 。 |
paimon.catalog.warehouse | 是 | 您的 Paimon 数据的 Warehouse 存储路径。 |
hive.metastore.uris | 否 | 您的 Hive Metastore 的 URI。 格式:thrift://<metastore_IP_address>:<metastore_port> 。 如果您的 Hive Metastore 启用了高可用性 (HA),您可以指定多个 Metastore URI,并用逗号 (, ) 分隔它们,例如,"thrift://<metastore_IP_address_1>:<metastore_port_1>,thrift://<metastore_IP_address_2>:<metastore_port_2>,thrift://<metastore_IP_address_3>:<metastore_port_3>" 。 |
注意
如果您使用 Hive Metastore,则必须在查询 Paimon 数据之前将 Hive Metastore 节点的 hostname 和 IP 地址之间的映射添加到
/etc/hosts
路径。 否则,当您启动查询时,StarRocks 可能无法访问您的 Hive Metastore。
StorageCredentialParams
一组关于 StarRocks 如何与您的存储系统集成的参数。此参数集是可选的。
如果您使用 HDFS 作为存储,则无需配置 StorageCredentialParams
。
如果您使用 AWS S3、其他 S3 兼容的存储系统、Microsoft Azure Storage 或 Google GCS 作为存储,则必须配置 StorageCredentialParams
。
AWS S3
如果您选择 AWS S3 作为 Paimon 集群的存储,请执行以下操作之一:
-
要选择基于实例配置文件的身份验证方法,请按如下方式配置
StorageCredentialParams
"aws.s3.use_instance_profile" = "true",
"aws.s3.endpoint" = "<aws_s3_endpoint>" -
要选择基于假设角色的身份验证方法,请按如下方式配置
StorageCredentialParams
"aws.s3.use_instance_profile" = "true",
"aws.s3.iam_role_arn" = "<iam_role_arn>",
"aws.s3.endpoint" = "<aws_s3_endpoint>" -
要选择基于 IAM 用户的身份验证方法,请按如下方式配置
StorageCredentialParams
"aws.s3.use_instance_profile" = "false",
"aws.s3.access_key" = "<iam_user_access_key>",
"aws.s3.secret_key" = "<iam_user_secret_key>",
"aws.s3.endpoint" = "<aws_s3_endpoint>"
下表描述了需要在 StorageCredentialParams
中配置的参数。
参数 | 必需 | 描述 |
---|---|---|
aws.s3.use_instance_profile | 是 | 指定是否启用基于实例配置文件的身份验证方法和基于 Assume Role 的身份验证方法。有效值:true 和 false 。默认值:false 。 |
aws.s3.iam_role_arn | 否 | 具有对您的 AWS S3 存储桶权限的 IAM 角色的 ARN。如果您使用基于 Assume Role 的身份验证方法访问 AWS S3,则必须指定此参数。 |
aws.s3.endpoint | 是 | 用于连接到您的 AWS S3 Bucket 的 Endpoint。 例如,https://s3.us-west-2.amazonaws.com 。 |
aws.s3.access_key | 否 | 您的 IAM 用户的访问密钥。如果您使用基于 IAM 用户的身份验证方法访问 AWS S3,则必须指定此参数。 |
aws.s3.secret_key | 否 | 您的 IAM 用户的密钥。如果您使用基于 IAM 用户的身份验证方法访问 AWS S3,则必须指定此参数。 |
有关如何选择访问 AWS S3 的身份验证方法以及如何在 AWS IAM 控制台中配置访问控制策略的信息,请参阅用于访问 AWS S3 的身份验证参数。
S3 兼容的存储系统
如果您选择与 S3 兼容的存储系统(例如 MinIO)作为 Paimon 集群的存储,请按如下方式配置 StorageCredentialParams
以确保成功集成:
"aws.s3.enable_ssl" = "false",
"aws.s3.enable_path_style_access" = "true",
"aws.s3.endpoint" = "<s3_endpoint>",
"aws.s3.access_key" = "<iam_user_access_key>",
"aws.s3.secret_key" = "<iam_user_secret_key>"
下表描述了需要在 StorageCredentialParams
中配置的参数。
参数 | 必需 | 描述 |
---|---|---|
aws.s3.enable_ssl | 是 | 指定是否启用 SSL 连接。 有效值: true 和 false 。默认值:true 。 |
aws.s3.enable_path_style_access | 是 | 指定是否启用 path-style 访问。 有效值: true 和 false 。默认值:false 。对于 MinIO,您必须将值设置为 true 。Path-style URLs 使用以下格式: https://s3.<region_code>.amazonaws.com/<bucket_name>/<key_name> 。 例如,如果您在美国西部(俄勒冈)区域中创建一个名为 DOC-EXAMPLE-BUCKET1 的 Bucket,并且您想访问该 Bucket 中的 alice.jpg 对象,则可以使用以下 Path-style URL:https://s3.us-west-2.amazonaws.com/DOC-EXAMPLE-BUCKET1/alice.jpg 。 |
aws.s3.endpoint | 是 | 用于连接到您的 S3 兼容存储系统而不是 AWS S3 的端点。 |
aws.s3.access_key | 是 | 您的 IAM 用户的访问密钥。 |
aws.s3.secret_key | 是 | 您的 IAM 用户的密钥。 |
Microsoft Azure Storage
Azure Blob Storage
如果您选择 Blob Storage 作为 Paimon 集群的存储,请执行以下操作之一:
-
要选择共享密钥身份验证方法,请按如下方式配置
StorageCredentialParams
"azure.blob.storage_account" = "<storage_account_name>",
"azure.blob.shared_key" = "<storage_account_shared_key>"下表描述了需要在
StorageCredentialParams
中配置的参数。参数 必需 描述 azure.blob.storage_account 是 您的 Blob Storage 帐户的用户名。 azure.blob.shared_key 是 您的 Blob Storage 帐户的共享密钥。 -
要选择 SAS 令牌身份验证方法,请按如下方式配置
StorageCredentialParams
"azure.blob.storage_account" = "<storage_account_name>",
"azure.blob.container" = "<container_name>",
"azure.blob.sas_token" = "<storage_account_SAS_token>"下表描述了需要在
StorageCredentialParams
中配置的参数。参数 必需 描述 azure.blob.storage_account 是 您的 Blob Storage 帐户的用户名。 azure.blob.container 是 存储数据的 Blob 容器的名称。 azure.blob.sas_token 是 用于访问 Blob 存储帐户的 SAS 令牌。
Azure Data Lake Storage Gen2
如果您选择 Data Lake Storage Gen2 作为 Paimon 集群的存储,请执行以下操作之一:
-
要选择托管标识身份验证方法,请按如下方式配置
StorageCredentialParams
"azure.adls2.oauth2_use_managed_identity" = "true",
"azure.adls2.oauth2_tenant_id" = "<service_principal_tenant_id>",
"azure.adls2.oauth2_client_id" = "<service_client_id>"下表描述了需要在
StorageCredentialParams
中配置的参数。参数 必需 描述 azure.adls2.oauth2_use_managed_identity 是 指定是否启用托管标识身份验证方法。将值设置为 true
。azure.adls2.oauth2_tenant_id 是 您要访问其数据的租户的 ID。 azure.adls2.oauth2_client_id 是 托管标识的客户端(应用程序)ID。 -
要选择共享密钥身份验证方法,请按如下方式配置
StorageCredentialParams
"azure.adls2.storage_account" = "<storage_account_name>",
"azure.adls2.shared_key" = "<storage_account_shared_key>"下表描述了需要在
StorageCredentialParams
中配置的参数。参数 必需 描述 azure.adls2.storage_account 是 您的 Data Lake Storage Gen2 存储帐户的用户名。 azure.adls2.shared_key 是 您的 Data Lake Storage Gen2 存储帐户的共享密钥。 -
要选择服务主体身份验证方法,请按如下方式配置
StorageCredentialParams
"azure.adls2.oauth2_client_id" = "<service_client_id>",
"azure.adls2.oauth2_client_secret" = "<service_principal_client_secret>",
"azure.adls2.oauth2_client_endpoint" = "<service_principal_client_endpoint>"下表描述了您需要在
StorageCredentialParams
中配置的参数。参数 必需 描述 azure.adls2.oauth2_client_id 是 服务主体的客户端(应用程序)ID。 azure.adls2.oauth2_client_secret 是 创建的新客户端(应用程序)密钥的值。 azure.adls2.oauth2_client_endpoint 是 服务主体或应用程序的 OAuth 2.0 令牌端点 (v1)。
Azure Data Lake Storage Gen1
如果您选择 Data Lake Storage Gen1 作为 Paimon 集群的存储,请执行以下操作之一:
-
要选择托管服务标识身份验证方法,请按如下方式配置
StorageCredentialParams
"azure.adls1.use_managed_service_identity" = "true"
下表描述了需要在
StorageCredentialParams
中配置的参数。参数 必需 描述 azure.adls1.use_managed_service_identity 是 指定是否启用托管服务标识身份验证方法。将值设置为 true
。 -
要选择服务主体身份验证方法,请按如下方式配置
StorageCredentialParams
"azure.adls1.oauth2_client_id" = "<application_client_id>",
"azure.adls1.oauth2_credential" = "<application_client_credential>",
"azure.adls1.oauth2_endpoint" = "<OAuth_2.0_authorization_endpoint_v2>"下表描述了需要在
StorageCredentialParams
中配置的参数。参数 必需 描述 azure.adls1.oauth2_client_id 是 服务主体的客户端(应用程序)ID。 azure.adls1.oauth2_credential 是 创建的新客户端(应用程序)密钥的值。 azure.adls1.oauth2_endpoint 是 服务主体或应用程序的 OAuth 2.0 令牌端点 (v1)。
Google GCS
如果您选择 Google GCS 作为 Paimon 集群的存储,请执行以下操作之一:
-
要选择基于 VM 的身份验证方法,请按如下方式配置
StorageCredentialParams
"gcp.gcs.use_compute_engine_service_account" = "true"
下表描述了需要在
StorageCredentialParams
中配置的参数。参数 默认值 取值示例 描述 gcp.gcs.use_compute_engine_service_account FALSE TRUE 指定是否直接使用绑定到您的 Compute Engine 的服务帐户。 -
要选择基于服务帐户的身份验证方法,请按如下方式配置
StorageCredentialParams
"gcp.gcs.service_account_email" = "<google_service_account_email>",
"gcp.gcs.service_account_private_key_id" = "<google_service_private_key_id>",
"gcp.gcs.service_account_private_key" = "<google_service_private_key>"下表描述了需要在
StorageCredentialParams
中配置的参数。参数 默认值 取值示例 描述 gcp.gcs.service_account_email "" "user@hello.iam.gserviceaccount.com" 在创建服务帐户时生成的 JSON 文件中的电子邮件地址。 gcp.gcs.service_account_private_key_id "" "61d257bd8479547cb3e04f0b9b6b9ca07af3b7ea" 在创建服务帐户时生成的 JSON 文件中的私钥 ID。 gcp.gcs.service_account_private_key "" "-----BEGIN PRIVATE KEY----xxxx-----END PRIVATE KEY-----\n" 在创建服务帐户时生成的 JSON 文件中的私钥。 -
要选择基于模拟的身份验证方法,请按如下方式配置
StorageCredentialParams
-
使 VM 实例模拟服务帐户
"gcp.gcs.use_compute_engine_service_account" = "true",
"gcp.gcs.impersonation_service_account" = "<assumed_google_service_account_email>"下表描述了需要在
StorageCredentialParams
中配置的参数。参数 默认值 取值示例 描述 gcp.gcs.use_compute_engine_service_account FALSE TRUE 指定是否直接使用绑定到您的 Compute Engine 的服务帐户。 gcp.gcs.impersonation_service_account "" "hello" 您要模拟的服务帐户。 -
使服务帐户(暂时命名为 meta service account)模拟另一个服务帐户(暂时命名为 data service account)
"gcp.gcs.service_account_email" = "<google_service_account_email>",
"gcp.gcs.service_account_private_key_id" = "<meta_google_service_account_email>",
"gcp.gcs.service_account_private_key" = "<meta_google_service_account_email>",
"gcp.gcs.impersonation_service_account" = "<data_google_service_account_email>"下表描述了需要在
StorageCredentialParams
中配置的参数。参数 默认值 取值示例 描述 gcp.gcs.service_account_email "" "user@hello.iam.gserviceaccount.com" 在创建元服务帐户时生成的 JSON 文件中的电子邮件地址。 gcp.gcs.service_account_private_key_id "" "61d257bd8479547cb3e04f0b9b6b9ca07af3b7ea" 在创建元服务帐户时生成的 JSON 文件中的私钥 ID。 gcp.gcs.service_account_private_key "" "-----BEGIN PRIVATE KEY----xxxx-----END PRIVATE KEY-----\n" 在创建元服务帐户时生成的 JSON 文件中的私钥。 gcp.gcs.impersonation_service_account "" "hello" 您要模拟的数据服务帐户。
-
示例
以下示例创建了一个名为 paimon_catalog_fs
的 Paimon Catalog,其 Metastore 类型 paimon.catalog.type
设置为 filesystem
以从您的 Paimon 集群查询数据。
AWS S3
-
如果您选择基于实例 Profile 的身份验证方法,请运行如下命令:
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<s3_paimon_warehouse_path>",
"aws.s3.use_instance_profile" = "true",
"aws.s3.endpoint" = "<s3_endpoint>"
); -
如果您选择基于 assumed role 的身份验证方法,请运行如下命令:
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<s3_paimon_warehouse_path>",
"aws.s3.use_instance_profile" = "true",
"aws.s3.iam_role_arn" = "arn:aws:iam::081976408565:role/test_s3_role",
"aws.s3.endpoint" = "<s3_endpoint>"
); -
如果您选择基于 IAM 用户的身份验证方法,请运行如下命令:
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<s3_paimon_warehouse_path>",
"aws.s3.use_instance_profile" = "false",
"aws.s3.access_key" = "<iam_user_access_key>",
"aws.s3.secret_key" = "<iam_user_secret_key>",
"aws.s3.endpoint" = "<s3_endpoint>"
);
S3 兼容的存储系统
以 MinIO 为例。运行如下命令
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<paimon_warehouse_path>",
"aws.s3.enable_ssl" = "true",
"aws.s3.enable_path_style_access" = "true",
"aws.s3.endpoint" = "<s3_endpoint>",
"aws.s3.access_key" = "<iam_user_access_key>",
"aws.s3.secret_key" = "<iam_user_secret_key>"
);
Microsoft Azure Storage
Azure Blob Storage
-
如果您选择 Shared Key 身份验证方法,请运行如下命令
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<blob_paimon_warehouse_path>",
"azure.blob.storage_account" = "<blob_storage_account_name>",
"azure.blob.shared_key" = "<blob_storage_account_shared_key>"
); -
如果您选择 SAS Token 身份验证方法,请运行如下命令
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<blob_paimon_warehouse_path>",
"azure.blob.storage_account" = "<blob_storage_account_name>",
"azure.blob.container" = "<blob_container_name>",
"azure.blob.sas_token" = "<blob_storage_account_SAS_token>"
);
Azure Data Lake Storage Gen1
-
如果您选择 Managed Service Identity 身份验证方法,请运行如下命令
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<adls1_paimon_warehouse_path>",
"azure.adls1.use_managed_service_identity" = "true"
); -
如果您选择 Service Principal 身份验证方法,请运行如下命令
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<adls1_paimon_warehouse_path>",
"azure.adls1.oauth2_client_id" = "<application_client_id>",
"azure.adls1.oauth2_credential" = "<application_client_credential>",
"azure.adls1.oauth2_endpoint" = "<OAuth_2.0_authorization_endpoint_v2>"
);
Azure Data Lake Storage Gen2
-
如果您选择 Managed Identity 身份验证方法,请运行如下命令
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<adls2_paimon_warehouse_path>",
"azure.adls2.oauth2_use_managed_identity" = "true",
"azure.adls2.oauth2_tenant_id" = "<service_principal_tenant_id>",
"azure.adls2.oauth2_client_id" = "<service_client_id>"
); -
如果您选择 Shared Key 身份验证方法,请运行如下命令
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<adls2_paimon_warehouse_path>",
"azure.adls2.storage_account" = "<storage_account_name>",
"azure.adls2.shared_key" = "<shared_key>"
); -
如果您选择 Service Principal 身份验证方法,请运行如下命令
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<adls2_paimon_warehouse_path>",
"azure.adls2.oauth2_client_id" = "<service_client_id>",
"azure.adls2.oauth2_client_secret" = "<service_principal_client_secret>",
"azure.adls2.oauth2_client_endpoint" = "<service_principal_client_endpoint>"
);
Google GCS
-
如果您选择基于 VM 的身份验证方法,请运行如下命令
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<gcs_paimon_warehouse_path>",
"gcp.gcs.use_compute_engine_service_account" = "true"
); -
如果您选择基于服务帐户的身份验证方法,请运行如下命令
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<gcs_paimon_warehouse_path>",
"gcp.gcs.service_account_email" = "<google_service_account_email>",
"gcp.gcs.service_account_private_key_id" = "<google_service_private_key_id>",
"gcp.gcs.service_account_private_key" = "<google_service_private_key>"
); -
如果您选择基于 Impersonation 的身份验证方法
-
如果您使 VM 实例模拟服务帐户,请运行如下命令
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<gcs_paimon_warehouse_path>",
"gcp.gcs.use_compute_engine_service_account" = "true",
"gcp.gcs.impersonation_service_account" = "<assumed_google_service_account_email>"
); -
如果您使服务帐户模拟另一个服务帐户,请运行如下命令
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<gcs_paimon_warehouse_path>",
"gcp.gcs.service_account_email" = "<google_service_account_email>",
"gcp.gcs.service_account_private_key_id" = "<meta_google_service_account_email>",
"gcp.gcs.service_account_private_key" = "<meta_google_service_account_email>",
"gcp.gcs.impersonation_service_account" = "<data_google_service_account_email>"
);
-
查看 Paimon Catalog
您可以使用 SHOW CATALOGS 查询当前 StarRocks 集群中的所有 Catalog
SHOW CATALOGS;
您还可以使用SHOW CREATE CATALOG 查询外部 Catalog 的创建语句。 以下示例查询名为 paimon_catalog_fs
的 Paimon Catalog 的创建语句:
SHOW CREATE CATALOG paimon_catalog_fs;
删除 Paimon Catalog
您可以使用 DROP CATALOG 删除外部 Catalog。
以下示例删除了名为 paimon_catalog_fs
的 Paimon Catalog:
DROP Catalog paimon_catalog_fs;
查看 Paimon 表的 Schema
您可以使用以下语法之一来查看 Paimon 表的 Schema:
-
查看 Schema
DESC[RIBE] <catalog_name>.<database_name>.<table_name>;
-
从 CREATE 语句中查看 Schema 和 Location
SHOW CREATE TABLE <catalog_name>.<database_name>.<table_name>;
查询 Paimon 表
-
使用SHOW DATABASES 查看您的 Paimon 集群中的数据库:
SHOW DATABASES FROM <catalog_name>;
-
使用 SET CATALOG 切换到当前会话中的目标 Catalog
SET CATALOG <catalog_name>;
然后,使用 USE 指定当前会话中的活动数据库
USE <db_name>;
或者,您可以使用 USE 直接指定目标 Catalog 中的活动数据库
USE <catalog_name>.<db_name>;
-
使用 SELECT 查询指定数据库中的目标表
SELECT count(*) FROM <table_name> LIMIT 10;
从 Paimon 加载数据
假设您有一个名为 olap_tbl
的 OLAP 表,您可以转换和加载数据,如下所示
INSERT INTO default_catalog.olap_db.olap_tbl SELECT * FROM paimon_table;