メインコンテンツまでスキップ

Unified Catalog

統合カタログは、CelerData によって提供される外部カタログの一種で、Apache Hive™、Apache Iceberg、Apache Hudi、Delta Lake のデータソースをインジェストなしで統合データソースとして扱います。統合カタログを使用すると、次のことが可能です。

  • Hive、Iceberg、Hudi、Delta Lake に保存されたデータを直接クエリし、手動でテーブルを作成する必要がありません。
  • INSERT INTO または非同期マテリアライズドビューを使用して、Hive、Iceberg、Hudi、Delta Lake に保存されたデータを処理し、CelerData にデータをロードします。
  • CelerData 上で操作を行い、Hive および Iceberg のデータベースとテーブルを作成または削除します。

統合データソースでの SQL ワークロードを成功させるためには、CelerData クラスターが統合データソースのストレージシステムとメタストアにアクセスできる必要があります。CelerData は次のストレージシステムとメタストアをサポートしています。

  • AWS S3 や Microsoft Azure Storage などのオブジェクトストレージ

  • Hive メタストア (HMS) や AWS Glue などのメタストア

    注意

    ストレージとして AWS S3 を選択した場合、メタストアとして HMS または AWS Glue を使用できます。他のストレージシステムを選択した場合、メタストアとしては HMS のみを使用できます。

制限事項

1 つの統合カタログは、単一のストレージシステムと単一のメタストアサービスとのみ統合できます。したがって、CelerData と統合したいすべてのデータソースが同じストレージシステムとメタストアサービスを使用していることを確認してください。

使用上の注意

  • サポートされているファイル形式とデータ型を理解するために、Hive catalogIceberg catalogHudi catalog、および Delta Lake catalog の「使用上の注意」セクションを参照してください。

  • 形式固有の操作は特定のテーブル形式にのみ対応しています。たとえば、CREATE TABLEDROP TABLE は Hive と Iceberg のみでサポートされており、REFRESH EXTERNAL TABLE は Hive と Hudi のみでサポートされています。

    CREATE TABLE ステートメントを使用して統合カタログ内にテーブルを作成する際は、ENGINE パラメータを使用してテーブル形式 (Hive または Iceberg) を指定してください。

統合の準備

統合カタログを作成する前に、CelerData クラスターが統合データソースのストレージシステムとメタストアと統合できることを確認してください。

Hive メタストア

Hive クラスターがメタストアとして Hive メタストアを使用している場合、CelerData が Hive メタストアのホストにアクセスできることを確認してください。

注意

通常、CelerData クラスターと Hive メタストアの統合を有効にするために、次のいずれかのアクションを実行できます。

  • CelerData クラスターと Hive メタストアを同じ VPC にデプロイします。
  • CelerData クラスターの VPC と Hive メタストアの VPC の間に VPC ピアリング接続を構成します。

次に、Hive メタストアのセキュリティグループの設定を確認し、CelerData クラスターのセキュリティグループからのインバウンドトラフィックを許可するインバウンドルールが設定されていること、およびポート範囲がデフォルトポート 9083 をカバーしていることを確認してください。

AWS

Hive クラスターがストレージとして AWS S3 を使用している場合、またはメタストアとして AWS Glue を使用している場合、適切な認証方法を選択し、IAM ロールまたはユーザーの作成や指定された IAM ロールまたはユーザーへの IAM ポリシーの追加など、必要な準備を行って、CelerData クラスターがこれらの AWS リソースにアクセスできるようにします。詳細については、AWS リソースへの認証 > 準備を参照してください。

Microsoft Azure Storage

Hive クラスターがストレージとして Azure を使用している場合、適切な認証方法を選択し、ロールの割り当ての追加など、必要な準備を行います。詳細については、Azure クラウドストレージへの認証を参照してください。

統合カタログの作成

構文

CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
"type" = "unified",
MetastoreParams,
StorageCredentialParams,
MetadataUpdateParams
)

パラメータ

catalog_name

統合カタログの名前。命名規則は次のとおりです。

  • 名前には文字、数字 (0-9)、アンダースコア (_) を含めることができます。文字で始まる必要があります。
  • 名前は大文字と小文字を区別し、長さは 1023 文字を超えてはなりません。

comment

統合カタログの説明。このパラメータはオプションです。

type

データソースのタイプ。値を unified に設定します。

MetastoreParams

CelerData がメタストアと統合する方法に関する一連のパラメータ。

Hive メタストア

統合データソースのメタストアとして Hive メタストアを選択した場合、MetastoreParams を次のように構成します。

"unified.metastore.type" = "hive",
"hive.metastore.uris" = "<hive_metastore_uri>"

注意

データをクエリする前に、Hive メタストアノードのホスト名と IP アドレスのマッピングを /etc/hosts パスに追加する必要があります。そうしないと、クエリを開始したときに CelerData が Hive メタストアにアクセスできない可能性があります。

次の表は、MetastoreParams で構成する必要があるパラメータを説明しています。

パラメータ必須説明
unified.metastore.typeはい統合データソースに使用するメタストアのタイプ。値を hive に設定します。
hive.metastore.urisはいHive メタストアの URI。形式: thrift://<metastore_IP_address>:<metastore_port>。高可用性 (HA) が Hive メタストアで有効になっている場合、複数のメタストア 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>"
AWS Glue

データソースのメタストアとして AWS Glue を選択する場合、これは AWS S3 をストレージとして選択した場合にのみサポートされます。次のいずれかのアクションを実行します。

  • インスタンスプロファイルベースの認証方法を選択するには、MetastoreParams を次のように構成します。

    "unified.metastore.type" = "glue",
    "aws.glue.use_instance_profile" = "true",
    "aws.glue.region" = "<aws_glue_region>"
  • アサームドロールベースの認証方法を選択するには、MetastoreParams を次のように構成します。

    "unified.metastore.type" = "glue",
    "aws.glue.use_instance_profile" = "true",
    "aws.glue.iam_role_arn" = "<iam_role_arn>",
    "aws.glue.region" = "<aws_glue_region>"
  • IAM ユーザーベースの認証方法を選択するには、MetastoreParams を次のように構成します。

    "unified.metastore.type" = "glue",
    "aws.glue.use_instance_profile" = "false",
    "aws.glue.access_key" = "<iam_user_access_key>",
    "aws.glue.secret_key" = "<iam_user_secret_key>",
    "aws.glue.region" = "<aws_s3_region>"

次の表は、MetastoreParams で構成する必要があるパラメータを説明しています。

パラメータ必須説明
unified.metastore.typeはい統合データソースに使用するメタストアのタイプ。値を glue に設定します。
aws.glue.use_instance_profileはいインスタンスプロファイルベースの認証方法とアサームドロールベースの認証を有効にするかどうかを指定します。有効な値: true および false。デフォルト値: false
aws.glue.iam_role_arnいいえAWS Glue Data Catalog に対する権限を持つ IAM ロールの ARN。AWS Glue にアクセスするためにアサームドロールベースの認証方法を使用する場合、このパラメータを指定する必要があります。
aws.glue.regionはいAWS Glue Data Catalog が存在するリージョン。例: us-west-1
aws.glue.access_keyいいえAWS IAM ユーザーのアクセスキー。IAM ユーザーベースの認証方法を使用して AWS Glue にアクセスする場合、このパラメータを指定する必要があります。
aws.glue.secret_keyいいえAWS IAM ユーザーのシークレットキー。IAM ユーザーベースの認証方法を使用して AWS Glue にアクセスする場合、このパラメータを指定する必要があります。

AWS Glue にアクセスするための認証方法の選択方法や AWS IAM コンソールでのアクセス制御ポリシーの構成方法については、AWS Glue へのアクセスのための認証パラメータを参照してください。

StorageCredentialParams

CelerData がストレージシステムと統合する方法に関する一連のパラメータ。このパラメータセットはオプションです。

AWS S3

ストレージとして AWS S3 を選択する場合、次のいずれかのアクションを実行します。

  • インスタンスプロファイルベースの認証方法を選択するには、StorageCredentialParams を次のように構成します。

    "aws.s3.use_instance_profile" = "true",
    "aws.s3.region" = "<aws_s3_region>"
  • アサームドロールベースの認証方法を選択するには、StorageCredentialParams を次のように構成します。

    "aws.s3.use_instance_profile" = "true",
    "aws.s3.iam_role_arn" = "<iam_role_arn>",
    "aws.s3.region" = "<aws_s3_region>"
  • 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.region" = "<aws_s3_region>"

次の表は、StorageCredentialParams で構成する必要があるパラメータを説明しています。

パラメータ必須説明
aws.s3.use_instance_profileはいインスタンスプロファイルベースの認証方法とアサームドロールベースの認証方法を有効にするかどうかを指定します。有効な値: true および false。デフォルト値: false
aws.s3.iam_role_arnいいえAWS S3 バケットに対する権限を持つ IAM ロールの ARN。AWS S3 にアクセスするためにアサームドロールベースの認証方法を使用する場合、このパラメータを指定する必要があります。
aws.s3.regionはいAWS S3 バケットが存在するリージョン。例: us-west-1
aws.s3.access_keyいいえIAM ユーザーのアクセスキー。IAM ユーザーベースの認証方法を使用して AWS S3 にアクセスする場合、このパラメータを指定する必要があります。
aws.s3.secret_keyいいえIAM ユーザーのシークレットキー。IAM ユーザーベースの認証方法を使用して AWS S3 にアクセスする場合、このパラメータを指定する必要があります。

AWS S3 にアクセスするための認証方法の選択方法や AWS IAM コンソールでのアクセス制御ポリシーの構成方法については、AWS S3 へのアクセスのための認証パラメータを参照してください。

Microsoft Azure Storage
Azure Blob Storage

Blob Storage をストレージとして選択する場合、次のいずれかのアクションを実行します。

  • 共有キー認証方法を選択するには、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はいデータを保存するブロブコンテナの名前。
    azure.blob.sas_tokenはいBlob Storage アカウントにアクセスするための SAS トークン。
Azure Data Lake Storage Gen2

Data Lake Storage Gen2 をストレージとして選択する場合、次のいずれかのアクションを実行します。

  • マネージド ID 認証方法を選択するには、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はいマネージド ID 認証方法を有効にするかどうかを指定します。値を true に設定します。
azure.adls2.oauth2_tenant_idはいアクセスしたいデータのテナント ID。
azure.adls2.oauth2_client_idはいマネージド 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 をストレージとして選択する場合、次のいずれかのアクションを実行します。

  • マネージドサービス ID 認証方法を選択するには、StorageCredentialParams を次のように構成します。

    "azure.adls1.use_managed_service_identity" = "true"

    次の表は、StorageCredentialParams で構成する必要があるパラメータを説明しています。

    パラメータ必須説明
    azure.adls1.use_managed_service_identityはいマネージドサービス ID 認証方法を有効にするかどうかを指定します。値を 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)。

MetadataUpdateParams

CelerData が Hive、Hudi、Delta Lake のキャッシュされたメタデータを更新する方法に関する一連のパラメータ。このパラメータセットはオプションです。Hive、Hudi、Delta Lake からキャッシュされたメタデータを更新するためのポリシーについては、Hive catalogHudi catalog、および Delta Lake catalog を参照してください。

ほとんどの場合、MetadataUpdateParams を無視し、その中のポリシーパラメータを調整する必要はありません。これらのパラメータのデフォルト値は、すぐに使用できるパフォーマンスを提供します。

ただし、Hive、Hudi、Delta Lake でのデータ更新の頻度が高い場合、これらのパラメータを調整して自動非同期更新のパフォーマンスをさらに最適化できます。

パラメータ必須説明
enable_metastore_cacheいいえCelerData が Hive、Hudi、Delta Lake テーブルのメタデータをキャッシュするかどうかを指定します。有効な値: true および false。デフォルト値: true。値 true はキャッシュを有効にし、値 false はキャッシュを無効にします。
enable_remote_file_cacheいいえCelerData が Hive、Hudi、Delta Lake テーブルまたはパーティションの基礎データファイルのメタデータをキャッシュするかどうかを指定します。有効な値: true および false。デフォルト値: true。値 true はキャッシュを有効にし、値 false はキャッシュを無効にします。
metastore_cache_refresh_interval_secいいえCelerData が Hive、Hudi、Delta Lake テーブルまたはパーティションのキャッシュされたメタデータを非同期に更新する時間間隔。単位: 秒。デフォルト値: 7200 (2 時間)。
remote_file_cache_refresh_interval_secいいえCelerData が Hive、Hudi、Delta Lake テーブルまたはパーティションの基礎データファイルのキャッシュされたメタデータを非同期に更新する時間間隔。単位: 秒。デフォルト値: 60
metastore_cache_ttl_secいいえCelerData が Hive、Hudi、Delta Lake テーブルまたはパーティションのキャッシュされたメタデータを自動的に破棄する時間間隔。単位: 秒。デフォルト値: 86400 (24 時間)。
remote_file_cache_ttl_secいいえCelerData が Hive、Hudi、Delta Lake テーブルまたはパーティションの基礎データファイルのキャッシュされたメタデータを自動的に破棄する時間間隔。単位: 秒。デフォルト値: 129600 (36 時間)。

次の例では、使用するメタストアの種類に応じて unified_catalog_hms または unified_catalog_glue という名前の統合カタログを作成し、統合データソースからデータをクエリします。

AWS S3

インスタンスプロファイルベースの認証
  • Hive メタストアを使用する場合、次のようなコマンドを実行します。

    CREATE EXTERNAL CATALOG unified_catalog_hms
    PROPERTIES
    (
    "type" = "unified",
    "unified.metastore.type" = "hive",
    "hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083",
    "aws.s3.use_instance_profile" = "true",
    "aws.s3.region" = "us-west-2"
    );
  • Amazon EMR と AWS Glue を使用する場合、次のようなコマンドを実行します。

    CREATE EXTERNAL CATALOG unified_catalog_glue
    PROPERTIES
    (
    "type" = "unified",
    "unified.metastore.type" = "glue",
    "aws.glue.use_instance_profile" = "true",
    "aws.glue.region" = "us-west-2",
    "aws.s3.use_instance_profile" = "true",
    "aws.s3.region" = "us-west-2"
    );
アサームドロールベースの認証
  • Hive メタストアを使用する場合、次のようなコマンドを実行します。

    CREATE EXTERNAL CATALOG unified_catalog_hms
    PROPERTIES
    (
    "type" = "unified",
    "unified.metastore.type" = "hive",
    "hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083",
    "aws.s3.use_instance_profile" = "true",
    "aws.s3.iam_role_arn" = "arn:aws:iam::081976408565:role/test_s3_role",
    "aws.s3.region" = "us-west-2"
    );
  • Amazon EMR と AWS Glue を使用する場合、次のようなコマンドを実行します。

    CREATE EXTERNAL CATALOG unified_catalog_glue
    PROPERTIES
    (
    "type" = "unified",
    "unified.metastore.type" = "glue",
    "aws.glue.use_instance_profile" = "true",
    "aws.glue.iam_role_arn" = "arn:aws:iam::081976408565:role/test_glue_role",
    "aws.glue.region" = "us-west-2",
    "aws.s3.use_instance_profile" = "true",
    "aws.s3.iam_role_arn" = "arn:aws:iam::081976408565:role/test_s3_role",
    "aws.s3.region" = "us-west-2"
    );
IAM ユーザーベースの認証
  • Hive メタストアを使用する場合、次のようなコマンドを実行します。

    CREATE EXTERNAL CATALOG unified_catalog_hms
    PROPERTIES
    (
    "type" = "unified",
    "unified.metastore.type" = "hive",
    "hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083",
    "aws.s3.use_instance_profile" = "false",
    "aws.s3.access_key" = "<iam_user_access_key>",
    "aws.s3.secret_key" = "<iam_user_access_key>",
    "aws.s3.region" = "us-west-2"
    );
  • Amazon EMR と AWS Glue を使用する場合、次のようなコマンドを実行します。

    CREATE EXTERNAL CATALOG unified_catalog_glue
    PROPERTIES
    (
    "type" = "unified",
    "unified.metastore.type" = "glue",
    "aws.glue.use_instance_profile" = "false",
    "aws.glue.access_key" = "<iam_user_access_key>",
    "aws.glue.secret_key" = "<iam_user_secret_key>",
    "aws.glue.region" = "us-west-2",
    "aws.s3.use_instance_profile" = "false",
    "aws.s3.access_key" = "<iam_user_access_key>",
    "aws.s3.secret_key" = "<iam_user_secret_key>",
    "aws.s3.region" = "us-west-2"
    );

Microsoft Azure Storage

Azure Blob Storage
  • 共有キー認証方法を選択する場合、次のようなコマンドを実行します。

    CREATE EXTERNAL CATALOG unified_catalog_hms
    PROPERTIES
    (
    "type" = "unified",
    "unified.metastore.type" = "hive",
    "hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083",
    "azure.blob.storage_account" = "<blob_storage_account_name>",
    "azure.blob.shared_key" = "<blob_storage_account_shared_key>"
    );
  • SAS トークン認証方法を選択する場合、次のようなコマンドを実行します。

    CREATE EXTERNAL CATALOG unified_catalog_hms
    PROPERTIES
    (
    "type" = "unified",
    "unified.metastore.type" = "hive",
    "hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083",
    "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
  • マネージドサービス ID 認証方法を選択する場合、次のようなコマンドを実行します。

    CREATE EXTERNAL CATALOG unified_catalog_hms
    PROPERTIES
    (
    "type" = "unified",
    "unified.metastore.type" = "hive",
    "hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083",
    "azure.adls1.use_managed_service_identity" = "true"
    );
  • サービスプリンシパル認証方法を選択する場合、次のようなコマンドを実行します。

    CREATE EXTERNAL CATALOG unified_catalog_hms
    PROPERTIES
    (
    "type" = "unified",
    "unified.metastore.type" = "hive",
    "hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083",
    "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
  • マネージド ID 認証方法を選択する場合、次のようなコマンドを実行します。

    CREATE EXTERNAL CATALOG unified_catalog_hms
    PROPERTIES
    (
    "type" = "unified",
    "unified.metastore.type" = "hive",
    "hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083",
    "azure.adls2.oauth2_use_managed_identity" = "true",
    "azure.adls2.oauth2_tenant_id" = "<service_principal_tenant_id>",
    "azure.adls2.oauth2_client_id" = "<service_client_id>"
    );
  • 共有キー認証方法を選択する場合、次のようなコマンドを実行します。

    CREATE EXTERNAL CATALOG unified_catalog_hms
    PROPERTIES
    (
    "type" = "unified",
    "unified.metastore.type" = "hive",
    "hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083",
    "azure.adls2.storage_account" = "<storage_account_name>",
    "azure.adls2.shared_key" = "<shared_key>"
    );
  • サービスプリンシパル認証方法を選択する場合、次のようなコマンドを実行します。

    CREATE EXTERNAL CATALOG unified_catalog_hms
    PROPERTIES
    (
    "type" = "unified",
    "unified.metastore.type" = "hive",
    "hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083",
    "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>"
    );

統合カタログの表示

現在の CelerData クラスター内のすべてのカタログをクエリするには、SHOW CATALOGS を使用します。

SHOW CATALOGS;

外部カタログの作成ステートメントをクエリするには、SHOW CREATE CATALOG を使用します。次の例では、unified_catalog_glue という名前の統合カタログの作成ステートメントをクエリします。

SHOW CREATE CATALOG unified_catalog_glue;

統合カタログとその中のデータベースに切り替える

統合カタログとその中のデータベースに切り替えるには、次のいずれかの方法を使用します。

  • 現在のセッションで統合カタログを指定するには SET CATALOG を使用し、その後 USE を使用してアクティブなデータベースを指定します。

    -- 現在のセッションで指定されたカタログに切り替えます:
    SET CATALOG <catalog_name>
    -- 現在のセッションでアクティブなデータベースを指定します:
    USE <db_name>
  • USE を直接使用して、統合カタログとその中のデータベースに切り替えます。

    USE <catalog_name>.<db_name>

統合カタログを削除する

外部カタログを削除するには、DROP CATALOG を使用します。

次の例では、unified_catalog_glue という名前の統合カタログを削除します。

DROP CATALOG unified_catalog_glue;

統合カタログのテーブルのスキーマを表示する

統合カタログのテーブルのスキーマを表示するには、次のいずれかの構文を使用します。

  • スキーマを表示

    DESC[RIBE] <catalog_name>.<database_name>.<table_name>
  • CREATE ステートメントからスキーマと場所を表示

    SHOW CREATE TABLE <catalog_name>.<database_name>.<table_name>

統合カタログからデータをクエリする

統合カタログからデータをクエリするには、次の手順に従います。

  1. 統合カタログが関連付けられている統合データソース内のデータベースを表示するには、SHOW DATABASES を使用します。

    SHOW DATABASES FROM <catalog_name>
  2. Hive Catalog とその中のデータベースに切り替えます

  3. 指定されたデータベース内の宛先テーブルをクエリするには、SELECT を使用します。

    SELECT count(*) FROM <table_name> LIMIT 10

Hive、Iceberg、Hudi、または Delta Lake からデータをロードする

Hive、Iceberg、Hudi、または Delta Lake テーブルのデータを統合カタログ内で作成された CelerData テーブルにロードするには、INSERT INTO を使用します。

次の例では、Hive テーブル hive_table のデータを、統合カタログ unified_catalog に属するデータベース test_database に作成された CelerData テーブル test_tbl にロードします。

INSERT INTO unified_catalog.test_database.test_table SELECT * FROM hive_table

統合カタログにデータベースを作成する

CelerData の内部カタログと同様に、統合カタログで CREATE DATABASE 権限を持っている場合、そのカタログ内でデータベースを作成するために CREATE DATABASE ステートメントを使用できます。

注意

GRANT および REVOKE を使用して権限を付与および取り消すことができます。

CelerData は、統合カタログで Hive および Iceberg データベースのみの作成をサポートしています。

統合カタログに切り替えます、その後、次のステートメントを使用してそのカタログ内にデータベースを作成します。

CREATE DATABASE <database_name>
[properties ("location" = "<prefix>://<path_to_database>/<database_name.db>")]

location パラメータは、データベースを作成するファイルパスを指定します。

  • データソースのメタストアとして Hive メタストアを使用する場合、location パラメータはデフォルトで <warehouse_location>/<database_name.db> になり、データベース作成時にそのパラメータを指定しない場合、Hive メタストアでサポートされます。
  • データソースのメタストアとして AWS Glue を使用する場合、location パラメータにはデフォルト値がなく、データベース作成時にそのパラメータを指定する必要があります。

prefix は使用するストレージシステムに基づいて異なります。

ストレージシステムPrefix
Azure Blob Storage
  • ストレージアカウントが HTTP 経由でのアクセスを許可する場合、prefixwasb です。
  • ストレージアカウントが HTTPS 経由でのアクセスを許可する場合、prefixwasbs です。
Azure Data Lake Storage Gen2
  • ストレージアカウントが HTTP 経由でのアクセスを許可する場合、prefixabfs です。
  • ストレージアカウントが HTTPS 経由でのアクセスを許可する場合、prefixabfss です。
Azure Data Lake Storage Gen1adl
AWS S3s3

統合カタログからデータベースを削除する

CelerData の内部データベースと同様に、統合カタログ内で作成されたデータベースに対して DROP 権限を持っている場合、そのデータベースを削除するために DROP DATABASE ステートメントを使用できます。空のデータベースのみを削除できます。

注意

GRANT および REVOKE を使用して権限を付与および取り消すことができます。

CelerData は、統合カタログから Hive および Iceberg データベースのみの削除をサポートしています。

統合カタログからデータベースを削除する際、そのデータベースのクラウドストレージ上のファイルパスはデータベースと共に削除されません。

統合カタログに切り替えます、その後、次のステートメントを使用してそのカタログ内のデータベースを削除します。

DROP DATABASE <database_name>

統合カタログにテーブルを作成する

CelerData の内部データベースと同様に、統合カタログ内で作成されたデータベースに対して CREATE TABLE 権限を持っている場合、そのデータベースにテーブルを作成するために CREATE TABLE または CREATE TABLE AS SELECT (CTAS) ステートメントを使用できます。

注意

GRANT および REVOKE を使用して権限を付与および取り消すことができます。

CelerData は、統合カタログで Hive および Iceberg テーブルのみの作成をサポートしています。

Hive Catalog とその中のデータベースに切り替えます。その後、CREATE TABLE を使用して、そのデータベースに Hive または Iceberg テーブルを作成します。

CREATE TABLE <table_name>
(column_definition1[, column_definition2, ...]
ENGINE = {|hive|iceberg}
[partition_desc]

詳細については、Hive テーブルの作成 および Iceberg テーブルの作成 を参照してください。

次の例では、hive_table という名前の Hive テーブルを作成します。このテーブルは actioniddt の 3 つの列で構成されており、そのうち iddt はパーティション列です。

CREATE TABLE hive_table
(
action varchar(65533),
id int,
dt date
)
ENGINE = hive
PARTITION BY (id,dt);

統合カタログのテーブルにデータをシンクする

CelerData の内部テーブルと同様に、統合カタログ内で作成されたテーブルに対して INSERT 権限を持っている場合、その Unified Catalog テーブルに CelerData テーブルのデータをシンクするために INSERT ステートメントを使用できます (現在、Parquet 形式の Unified Catalog テーブルのみがサポートされています)。

注意

GRANT および REVOKE を使用して権限を付与および取り消すことができます。

CelerData は、統合カタログで Hive および Iceberg テーブルへのデータのシンクのみをサポートしています。

Hive Catalog とその中のデータベースに切り替えます。その後、INSERT INTO を使用して、そのデータベース内の Hive または Iceberg テーブルにデータを挿入します。

INSERT {INTO | OVERWRITE} <table_name>
[ (column_name [, ...]) ]
{ VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query }

-- 指定されたパーティションにデータをシンクしたい場合は、次の構文を使用します。
INSERT {INTO | OVERWRITE} <table_name>
PARTITION (par_col1=<value> [, par_col2=<value>...])
{ VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query }

詳細については、Hive テーブルへのデータのシンク および Iceberg テーブルへのデータのシンク を参照してください。

次の例では、hive_table という名前の Hive テーブルに 3 行のデータを挿入します。

INSERT INTO hive_table
VALUES
("buy", 1, "2023-09-01"),
("sell", 2, "2023-09-02"),
("buy", 3, "2023-09-03");

統合カタログからテーブルを削除する

CelerData の内部テーブルと同様に、統合カタログ内で作成されたテーブルに対して DROP 権限を持っている場合、そのテーブルを削除するために DROP TABLE ステートメントを使用できます。

注意

GRANT および REVOKE を使用して権限を付与および取り消すことができます。

CelerData は、統合カタログから Hive および Iceberg テーブルのみの削除をサポートしています。

Hive Catalog とその中のデータベースに切り替えます。その後、DROP TABLE を使用して、そのデータベース内の Hive または Iceberg テーブルを削除します。

DROP TABLE <table_name>

詳細については、Hive テーブルの削除 および Iceberg テーブルの削除 を参照してください。

次の例では、hive_table という名前の Hive テーブルを削除します。

DROP TABLE hive_table FORCE