Перейти к основному содержимому

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;