Paimon catalog
Selena поддерживает Paimon catalog начиная с версии v1.5.2.
Paimon catalog — это разновидность внешнего catalog, которая позволяет выполнять запросы к данным из Apache Paimon без необходимости их загрузки.
Кроме того, вы можете напрямую трансформировать и загружать данные из Paimon с помощью INSERT INTO на основе Paimon catalog.
Для успешного выполнения SQL-запросов к вашему Paimon cluster, ваш Selena cluster должен иметь доступ к системе хранения и metastore вашего Paimon cluster. Selena поддерживает следующие системы хранения и metastore:
- Распределённая файловая система (HDFS) или объектное хранилище, такое как AWS S3, Microsoft Azure Storage, Google GCS, или другие S3-совместимые системы хранения (например, MinIO)
- Metastore, такие как файловая система или Hive metastore
Примечания по использованию
Вы можете использовать Paimon catalog только для запроса данных. Нельзя использовать Paimon catalog для удаления или вставки данных в ваш Paimon cluster.
Соответствие типов данных Paimon и Selena
| Тип Paimon | Тип Selena |
|---|---|
BINARY | VARBINARY |
VARBINARY | VARBINARY |
CHAR | CHAR(length) |
VARCHAR | VARCHAR |
BOOLEAN | BOOLEAN |
DECIMAL | DECIMAL(precision, scale) |
TINYINT | TINYINT |
SMALLINT | SMALLINT |
INT | INT |
BIGINT | BIGINT |
FLOAT | FLOAT |
DOUBLE | DOUBLE |
DATE | DATE |
TIME | TIME |
TIMESTAMP | DATETIME |
LocalZonedTimestamp | DATETIME |
ARRAY | ARRAY<element_type> |
MAP | MAP<key_type, value_type> |
ROW/STRUCT | STRUCT<field1:type1, ...> |
Подготовка к интеграции
Перед созданием Paimon catalog убедитесь, что ваш Selena cluster может интегрироваться с системой хранения и metastore вашего Paimon cluster.
AWS IAM
Если ваш Paimon cluster использует AWS S3 в качестве хранилища, выберите подходящий метод аутентификации и выполните необходимую подготовку, чтобы ваш Selena cluster мог получить доступ к соответствующим облачным ресурсам AWS.
Рекомендуются следующие методы аутентификации:
- Instance profile (рекомендуется)
- Assumed role
- IAM user
Из вышеупомянутых трёх методов аутентификации instance profile используется наиболее широко.
Подробнее см. в разделе Подготовка к аутентификации в AWS IAM.
HDFS
Если вы выбрали HDFS в качестве хранилища, настройте ваш Selena cluster следующим образом:
- (Опционально) Установите имя пользователя, которое используется для доступа к вашему HDFS cluster и Hive metastore. По умолчанию Selena использует имя пользователя процессов FE и BE или CN для доступа к вашему HDFS cluster и Hive metastore. Вы также можете задать имя пользователя, добавив
export HADOOP_USER_NAME="<user_name>"в начало файла fe/conf/hadoop_env.sh каждого FE и в начало файла be/conf/hadoop_env.sh каждого BE или файла cn/conf/hadoop_env.sh каждого CN. После установки имени пользователя в этих файлах перезапустите каждый FE и каждый BE или CN, чтобы настройки параметров вступили в силу. Для каждого Selena cluster можно задать только одно имя пользователя. - При запросе данных Paimon, FE и BE или CN вашего Selena cluster используют HDFS-клиент для доступа к вашему HDFS cluster. В большинстве случаев вам не нужно настраивать ваш Selena cluster для этого, и Selena запускает HDFS-клиент с настройками по умолчанию. Настройка Selena cluster необходима только в следующих ситуациях:
- Дл я вашего HDFS cluster включена высокая доступность (HA): Добавьте файл hdfs-site.xml вашего HDFS cluster в путь $FE_HOME/conf каждого FE и в путь $BE_HOME/conf каждого BE или путь $CN_HOME/conf каждого CN.
- Для вашего HDFS cluster включена View File System (ViewFs): Добавьте файл core-site.xml вашего HDFS cluster в путь $FE_HOME/conf каждого FE и в путь $BE_HOME/conf каждого BE или путь $CN_HOME/conf каждого CN.
ПРИМЕЧАНИЕ
Если при отправке запроса возвращается ошибка о неизвестном хосте, необходимо добавить соответствие между именами хостов и IP-адресами узлов вашего HDFS cluster в путь /etc/hosts.
Аутентификация Kerberos
Если для вашего HDFS cluster или Hive metastore включена аутентификация Kerberos, настройте ваш Selena cluster следующим образом:
- Выполните команду
kinit -kt keytab_path principalна каждом FE и каждом BE или CN, чтобы получить Ticket Granting Ticket (TGT) от Key Distribution Center (KDC). Для выполнения этой команды у вас должны быть разрешения на доступ к вашему HDFS cluster и Hive metastore. Обратите внимание, что доступ к KDC с помощью этой команды ограничен по времени. Поэтому необходимо использовать cron для периодического выполнения этой команды. - Добавьте
JAVA_OPTS="-Djava.security.krb5.conf=/etc/krb5.conf"в файл $FE_HOME/conf/fe.conf каждого FE и в файл $BE_HOME/conf/be.conf каждого BE или файл $CN_HOME/conf/cn.conf каждого CN. В этом примере/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
Набор параметров о т ом, как Selena получает доступ к метаданным вашего Paimon cluster.
В следующей таблице описан параметр, который необходимо настроить в CatalogParams.
| Параметр | Обязательный | Описание |
|---|---|---|
| paimon.catalog.type | Да | Тип metastore, который вы используете для вашего Paimon cluster. Установите этот параметр на filesystem или hive. |
| paimon.catalog.warehouse | Да | Путь к хранилищу warehouse ваших данных Paimon. |
| hive.metastore.uris | Нет | URI вашего Hive metastore. Формат: thrift://<metastore_IP_address>:<metastore_port>. Если для вашего Hive metastore включена высокая доступность (HA), вы можете указать несколько URI metastore и разделить их запятыми (,), например, "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, вы должны добавить соответствие между именами хостов и IP-адресами узлов вашего Hive metastore в путь
/etc/hostsперед запросом данных Paimon. В противном случае Selena может не получить доступ к вашему Hive metastore при запуске запроса.
StorageCredentialParams
Набор параметров о том, как Selena интегрируется с вашей системой хранения. Этот набор параметров является опциональным.
Если вы используете HDFS в качестве хранилища, вам не нужно настраивать StorageCredentialParams.
Если вы используете AWS S3, другую S3-совместимую систему хранения, Microsoft Azure Storage или Google GCS в качестве хранилища, вы должны настроить StorageCredentialParams.
AWS S3
Если вы выбрали AWS S3 в качестве хранилища для вашего Paimon cluster, выполните одно из следующих действий:
-
Чтобы выбрать метод аутентификации на основе instance profile, настройте
StorageCredentialParamsследующим образом:"aws.s3.use_instance_profile" = "true",
"aws.s3.endpoint" = "<aws_s3_endpoint>" -
Чтобы выбрать метод аутентификации на основе assumed role, настройте
StorageCredentialParamsследующим образом:"aws.s3.use_instance_profile" = "true",
"aws.s3.iam_role_arn" = "<iam_role_arn>",
"aws.s3.endpoint" = "<aws_s3_endpoint>" -
Чтобы выбрать метод аутентификации на основе IAM user, настройте
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 | Да | Указывает, следует ли включить метод аутентификации на основе instance profile и метод аутентификации на основе assumed role. Допустимые значения: true и false. Значение по умолчанию: false. |
| aws.s3.iam_role_arn | Нет | ARN IAM role, которая имеет привилегии на ваш AWS S3 bucket. Если вы используете метод аутентификации на основе assumed role для доступа к AWS S3, вы должны указать этот параметр. |
| aws.s3.endpoint | Да | Endpoint, который используется для подключения к вашему AWS S3 bucket. Например, https://s3.us-west-2.amazonaws.com. |
| aws.s3.access_key | Нет | Access key вашего IAM user. Если вы используете метод аутентификации на основе IAM user для доступа к AWS S3, вы должны указать этот параметр. |
| aws.s3.secret_key | Нет | Secret key вашего IAM user. Если вы используете метод аутентификации на основе IAM user для доступа к AWS S3, вы должны указать этот параметр. |
Информацию о том, как выбрать метод аутентификации для доступа к AWS S3 и как настроить политику управления доступом в AWS IAM Console, см. в разделе Параметры аутентификации для доступа к AWS S3.
S3-совместимая система хранения
Если вы выбрали S3-совместимую систему хранения, такую как MinIO, в качестве хранилища для вашего Paimon cluster, настройте 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 | Да | Указывает, следует ли включить доступ в стиле пути. Допустимые значения: true и false. Значение по умолчанию: false. Для MinIO вы должны установить значение true.URL в стиле пути используют следующий формат: https://s3.<region_code>.amazonaws.com/<bucket_name>/<key_name>. Например, если вы создали bucket с именем DOC-EXAMPLE-BUCKET1 в регионе US West (Oregon) и хотите получить доступ к объекту alice.jpg в этом bucket, вы можете испо льзовать следующий URL в стиле пути: https://s3.us-west-2.amazonaws.com/DOC-EXAMPLE-BUCKET1/alice.jpg. |
| aws.s3.endpoint | Да | Endpoint, который используется для подключения к вашей S3-совместимой системе хранения вместо AWS S3. |
| aws.s3.access_key | Да | Access key вашего IAM user. |
| aws.s3.secret_key | Да | Secret key вашего IAM user. |
Microsoft Azure Storage
Azure Blob Storage
Если вы выбрали Blob Storage в качестве хранилища для вашего Paimon cluster, выполните одно из следующих действий:
-
Чтобы выбрать метод аутентификации Shared Key, настройте
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 Да Shared key вашей учётной записи Blob Storage. -
Чтобы выбрать метод аутентификации SAS Token, настройте
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 Да SAS token, который используется для доступа к вашей учётной записи Blob Storage.
Azure Data Lake Storage Gen2
Если вы выбрали Data Lake Storage Gen2 в качестве хранилища для вашего Paimon cluster, выполните одно из следующих действий:
-
Чтобы выбрать метод аутентификации Managed Identity, настройте
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 Да Указывает, следует ли включить метод аутентификации Managed Identity. Установите значение true.azure.adls2.oauth2_tenant_id Да ID tenant, к данным которого вы хотите получить доступ. azure.adls2.oauth2_client_id Да Client (application) ID управляемого удостоверения. -
Чтобы выбрать метод аутентификации Shared Key, настройте
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 Да Shared key вашей учётной записи хранения Data Lake Storage Gen2. -
Чтобы выбрать метод аутентификации Service Principal, настройте
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 Да Client (application) ID service principal. azure.adls2.oauth2_client_secret Да Значение нового секрета клиента (приложения), который был создан. azure.adls2.oauth2_client_endpoint Да OAuth 2.0 token endpoint (v1) service principal или приложения.
Azure Data Lake Storage Gen1
Если вы выбрали Data Lake Storage Gen1 в качестве хранилища для вашего Paimon cluster, выполните одно из следующих действий:
-
Чтобы выбрать метод аутентификации Managed Service Identity, настройте
StorageCredentialParamsследующим образом:"azure.adls1.use_managed_service_identity" = "true"В следующей таблице описаны параметры, которые необходимо настроить в
StorageCredentialParams.Параметр Обязательный Описание azure.adls1.use_managed_service_identity Да Указывает, следует ли включить метод аутентификации Managed Service Identity. Установите значение true. -
Чтобы выбрать метод аутентификации Service Principal, настройте
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 Да Client (application) ID service principal. azure.adls1.oauth2_credential Да Значение нового секрета клиента (приложения), который был создан. azure.adls1.oauth2_endpoint Да OAuth 2.0 token endpoint (v1) service principal или приложения.
Google GCS
Если вы выбрали Google GCS в качестве хранилища для вашего Paimon cluster, выполните одно из следующих действий:
-
Чтобы выбрать метод аутентификации на основе 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" ID приватного ключа в JSON-файле, сгенерированном при создании сервисной учётной записи. 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-файле, сгенерированном при создании meta service account. gcp.gcs.service_account_private_key_id "" "61d257bd8479547cb3e04f0b9b6b9ca07af3b7ea" ID приватного ключа в JSON-файле, сгенерированном при создании meta service account. gcp.gcs.service_account_private_key "" "-----BEGIN PRIVATE KEY----xxxx-----END PRIVATE KEY-----\n" Приватный ключ в JSON-файле, сгенерированном при создании meta service account. gcp.gcs.impersonation_service_account "" "hello" Data service account, которую вы хотите имперсонировать.
-
Примеры
Следующие примеры создают Paimon catalog с именем paimon_catalog_fs, тип metastore которого paimon.catalog.type установлен на filesystem, для запроса данных из вашего Paimon cluster.
AWS S3
-
Если вы выбираете метод аутентификации на основе instance 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 user, выполните команду, подобную следующей:
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>"
); -
Если вы выбираете метод аутентифи кации на основе имперсонации:
-
Если вы настраиваете 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 для запроса всех catalog в текущем Selena cluster:
SHOW CATALOGS;
Вы также можете использовать SHOW CREATE CATALOG для запроса оператора создания внешнего catalog. Следующий пример запрашивает оператор создания Paimon catalog с именем paimon_catalog_fs:
SHOW CREATE CATALOG paimon_catalog_fs;
Удаление Paimon catalog
Вы можете использовать DROP CATALOG для удаления внешнего catalog.
Следующий пример удаляет Paimon catalog с именем paimon_catalog_fs:
DROP Catalog paimon_catalog_fs;
Просмотр схемы таблицы Paimon
Вы можете использовать один из следующих синтаксисов для просмотра схемы таблицы Paimon:
-
Просмотр схемы
DESC[RIBE] <catalog_name>.<database_name>.<table_name>; -
Просмотр схемы и расположения из оператора CREATE
SHOW CREATE TABLE <catalog_name>.<database_name>.<table_name>;
Запрос таблицы Paimon
-
Используйте SHOW DATABASES для просмотра баз данных в вашем Paimon cluster:
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-таблица с именем olap_tbl, вы можете трансформировать и загрузить данные следующим образом:
INSERT INTO default_catalog.olap_db.olap_tbl SELECT * FROM paimon_table;