Перейти к основному содержимому
Версия: 1.5.x

Paimon catalog

Selena поддерживает Paimon catalogs начиная с версии 1.5.0.

Paimon catalog — это тип external catalog, который позволяет запрашивать данные из Apache Paimon без загрузки.

Также вы можете напрямую преобразовывать и загружать данные из Paimon, используя INSERT INTO на основе Paimon catalogs.

Для обеспечения успешного выполнения SQL-запросов в вашем Paimon кластере, ваш Selena кластер должен иметь доступ к системе хранения и metastore вашего Paimon кластера. Selena поддерживает следующие системы хранения и metastore:

  • Распределенная файловая система (HDFS) или объектное хранилище, такое как AWS S3, Microsoft Azure Storage, Google GCS или другая S3-совместимая система хранения (например, MinIO)
  • Metastore, такой как ваша файловая система или Hive metastore

Примечания по использованию​

Вы можете использовать Paimon catalogs только для запроса данных. Вы не можете использовать Paimon catalogs для удаления или вставки данных в ваш Paimon кластер.

Подготовка к интеграции​

Перед созданием Paimon catalog убедитесь, что ваш Selena кластер может интегрироваться с системой хранения и metastore вашего Paimon кластера.

AWS IAM​

Если ваш Paimon кластер использует AWS S3 в качестве хранилища, выберите подходящий метод аутентификации и выполните необходимые приготовления, чтобы обеспечить доступ вашего Selena кластера к соответствующим облачным ресурсам AWS.

Рекомендуются следующие методы аутентификации:

  • Instance profile (рекомендуется)
  • Assumed role
  • IAM user

Из вышеупомянутых трех методов аутентификации instance profile является наиболее широко используемым.

Для получения дополнительной информации см. Подготовка к аутентификации в AWS IAM.

HDFS​

Если вы выбираете HDFS в качестве хранилища, настройте ваш Selena кластер следующим образом:

  • (Опционально) Установите имя пользователя, которое используется для доступа к вашему HDFS кластеру и Hive metastore. По умолчанию Selena использует имя пользователя процессов FE и BE или CN для доступа к вашему HDFS кластеру и 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 кластера.
  • При запросе данных Paimon FE и BE или CN вашего Selena кластера используют HDFS клиент для доступа к вашему HDFS кластеру. В большинстве случаев вам не нужно настраивать ваш Selena кластер для достижения этой цели, и Selena запускает HDFS клиент, используя конфигурации по умолчанию. Вам нужно настроить ваш Selena кластер только в следующих ситуациях:
    • Высокая доступность (HA) включена для вашего HDFS кластера: Добавьте файл hdfs-site.xml вашего HDFS кластера в путь $FE_HOME/conf каждого FE и в путь $BE_HOME/conf каждого BE или путь $CN_HOME/conf каждого CN.
    • View File System (ViewFs) включена для вашего HDFS кластера: Добавьте файл core-site.xml вашего HDFS кластера в путь $FE_HOME/conf каждого FE и в путь $BE_HOME/conf каждого BE или путь $CN_HOME/conf каждого CN.

ПРИМЕЧАНИЕ

Если при отправке запроса возвращается ошибка, указывающая на неизвестный хост, вы должны добавить сопоставление между именами хостов и IP-адресами узлов вашего HDFS кластера в путь /etc/hosts.

Аутентификация Kerberos​

Если аутентификация Kerberos включена для вашего HDFS кластера или Hive metastore, настройте ваш Selena кластер следующим образом:

  • Выполните команду kinit -kt keytab_path principal на каждом FE и каждом BE или CN, чтобы получить Ticket Granting Ticket (TGT) от Key Distribution Center (KDC). Для выполнения этой команды у вас должны быть разрешения на доступ к вашему HDFS кластеру и 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 кластера.

В следующей таблице описан параметр, который вам нужно настроить в CatalogParams.

ПараметрОбязательныйОписание
paimon.catalog.typeДаТип metastore, который вы используете для вашего Paimon кластера. Установите этот параметр в filesystem или hive.
paimon.catalog.warehouseДаПуть хранения warehouse ваших данных Paimon.
hive.metastore.urisНетURI вашего Hive metastore. Формат: thrift://<metastore_IP_address>:<metastore_port>. Если высокая доступность (HA) включена для вашего Hive metastore, вы можете указать несколько 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 кластера, выполните одно из следующих действий:

  • Чтобы выбрать метод аутентификации на основе 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 роли, которая имеет привилегии на ваш 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 пользователя. Если вы используете метод аутентификации на основе IAM user для доступа к AWS S3, вы должны указать этот параметр.
aws.s3.secret_keyНетSecret key вашего IAM пользователя. Если вы используете метод аутентификации на основе IAM user для доступа к AWS S3, вы должны указать этот параметр.

Для получения информации о том, как выбрать метод аутентификации для доступа к AWS S3 и как настроить политику контроля доступа в AWS IAM Console, см. Параметры аутентификации для доступа к 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ДаУказывает, включить ли доступ в стиле пути.
Допустимые значения: 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 пользователя.
aws.s3.secret_keyДаSecret key вашего IAM пользователя.
Microsoft Azure Storage​
Azure Blob Storage​

Если вы выбираете Blob Storage в качестве хранилища для вашего Paimon кластера, выполните одно из следующих действий:

  • Чтобы выбрать метод аутентификации 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 токен, который используется для доступа к вашему Blob Storage аккаунту.
Azure Data Lake Storage Gen2​

Если вы выбираете Data Lake Storage Gen2 в качестве хранилища для вашего Paimon кластера, выполните одно из следующих действий:

  • Чтобы выбрать метод аутентификации 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ДаЗначение нового client (application) secret, созданного.
    azure.adls2.oauth2_client_endpointДаOAuth 2.0 token endpoint (v1) service principal или приложения.
Azure Data Lake Storage Gen1​

Если вы выбираете Data Lake Storage Gen1 в качестве хранилища для вашего Paimon кластера, выполните одно из следующих действий:

  • Чтобы выбрать метод аутентификации 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ДаЗначение нового client (application) secret, созданного.
    azure.adls1.oauth2_endpointДаOAuth 2.0 token endpoint (v1) service principal или приложения.
Google GCS​

Если вы выбираете Google GCS в качестве хранилища для вашего Paimon кластера, выполните одно из следующих действий:

  • Чтобы выбрать метод аутентификации на основе VM, настройте StorageCredentialParams следующим образом:

    "gcp.gcs.use_compute_engine_service_account" = "true"

    В следующей таблице описаны параметры, которые вам нужно настроить в StorageCredentialParams.

    ПараметрЗначение по умолчаниюПример значенияОписание
    gcp.gcs.use_compute_engine_service_accountFALSETRUEУказывает, использовать ли напрямую service account, привязанный к вашему Compute Engine.
  • Чтобы выбрать метод аутентификации на основе service account, настройте 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"Email адрес в JSON файле, сгенерированном при создании service account.
    gcp.gcs.service_account_private_key_id"""61d257bd8479547cb3e04f0b9b6b9ca07af3b7ea"Private key ID в JSON файле, сгенерированном при создании service account.
    gcp.gcs.service_account_private_key"""-----BEGIN PRIVATE KEY----xxxx-----END PRIVATE KEY-----\n"Private key в JSON файле, сгенерированном при создании service account.
  • Чтобы выбрать метод аутентификации на основе impersonation, настройте StorageCredentialParams следующим образом:

    • Заставить VM instance имитировать service account:

      "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_accountFALSETRUEУказывает, использовать ли напрямую service account, привязанный к вашему Compute Engine.
      gcp.gcs.impersonation_service_account"""hello"Service account, который вы хотите имитировать.
    • Заставить service account (временно названный meta service account) имитировать другой 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"Email адрес в JSON файле, сгенерированном при создании meta service account.
      gcp.gcs.service_account_private_key_id"""61d257bd8479547cb3e04f0b9b6b9ca07af3b7ea"Private key ID в JSON файле, сгенерированном при создании meta service account.
      gcp.gcs.service_account_private_key"""-----BEGIN PRIVATE KEY----xxxx-----END PRIVATE KEY-----\n"Private key в JSON файле, сгенерированном при создании meta service account.
      gcp.gcs.impersonation_service_account"""hello"Data service account, который вы хотите имитировать.

Примеры​

Следующие примеры создают Paimon catalog с именем paimon_catalog_fs, у которого тип metastore paimon.catalog.type установлен в filesystem для запроса данных из вашего Paimon кластера.

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"
    );
  • Если вы выбираете метод аутентификации на основе service account, выполните команду, подобную приведенной ниже:

    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 instance имитировать service account, выполните команду, подобную приведенной ниже:

      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>"
      );
    • Если вы заставляете service account имитировать другой service account, выполните команду, подобную приведенной ниже:

      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 catalogs​

Вы можете использовать SHOW CATALOGS для запроса всех catalogs в текущем Selena кластере:

SHOW CATALOGS;

Вы также можете использовать SHOW CREATE CATALOG для запроса оператора создания external catalog. Следующий пример запрашивает оператор создания Paimon catalog с именем paimon_catalog_fs:

SHOW CREATE CATALOG paimon_catalog_fs;

Удаление Paimon catalog​

Вы можете использовать DROP CATALOG для удаления external 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​

  1. Используйте SHOW DATABASES для просмотра баз данных в вашем Paimon кластере:

    SHOW DATABASES FROM <catalog_name>;
  2. Используйте SET CATALOG для переключения на целевой catalog в текущей сессии:

    SET CATALOG <catalog_name>;

    Затем используйте USE для указания активной базы данных в текущей сессии:

    USE <db_name>;

    Или вы можете использовать USE для прямого указания активной базы данных в целевом catalog:

    USE <catalog_name>.<db_name>;
  3. Используйте SELECT для запроса целевой таблицы в указанной базе данных:

    SELECT count(*) FROM <table_name> LIMIT 10;

Загрузка данных из Paimon​

Предположим, у вас есть OLAP таблица с именем olap_tbl, вы можете преобразовывать и загружать данные следующим образом:

INSERT INTO default_catalog.olap_db.olap_tbl SELECT * FROM paimon_table;