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 catalog、Iceberg catalog、Hudi catalog、および Delta Lake catalog の「使用上の注意」セクションを参照してください。
-
形式固有の操作は特定のテーブル形式にのみ対応しています。たとえば、CREATE TABLE と DROP 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 catalog、Hudi 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_hmsPROPERTIES("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_gluePROPERTIES("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_hmsPROPERTIES("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_gluePROPERTIES("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_hmsPROPERTIES("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_gluePROPERTIES("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_hmsPROPERTIES("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_hmsPROPERTIES("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_hmsPROPERTIES("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_hmsPROPERTIES("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_hmsPROPERTIES("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_hmsPROPERTIES("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_hmsPROPERTIES("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>
統合カタログからデータをクエリする
統合カタログからデータをクエリするには、次の手順に従います。
-
統合カタログが関連付けられている統合データソース内のデータベースを表示するには、SHOW DATABASES を使用します。
SHOW DATABASES FROM <catalog_name> -
指定されたデータベース内の宛先テーブルをクエリするには、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 ステートメントを使用できます。
注意
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 |
|
| Azure Data Lake Storage Gen2 |
|
| Azure Data Lake Storage Gen1 | adl |
| AWS S3 | s3 |
統合カタログからデータベースを削除する
CelerData の内部データベースと同様に、統合カタログ内で作成されたデータベースに対して DROP 権限を持っている場合、そのデータベースを削除するために DROP DATABASE ステートメントを使用できます。空のデータベースのみを削除できます。
注意
CelerData は、統合カタログから Hive および Iceberg データベースのみの削除をサポートしています。
統合カタログからデータベースを削除する際、そのデータベースのクラウドストレージ上のファイルパスはデータベースと共に削除されません。
統合カタログに切り替えます、その後、次のステートメントを使用してそのカタログ内のデータベースを削除します。
DROP DATABASE <database_name>
統合カタログにテーブルを作成する
CelerData の内部データベースと同様に、統合カタログ内で作成されたデータベースに対して CREATE TABLE 権限を持っている場合、そのデータベースにテーブルを作成するために CREATE TABLE または CREATE TABLE AS SELECT (CTAS) ステートメントを使用できます。
注意
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 テーブルを作成します。このテーブルは action、id、dt の 3 つの列で構成されており、そのうち id と dt はパーティション列です。
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 テーブルのみがサポートされています)。
注意
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 ステートメントを使用できます。
注意
CelerData は、統合カタログから Hive および Iceberg テーブルのみの削除をサポートしています。
Hive Catalog とその中のデータベースに切り替えます。その後、DROP TABLE を使用して、そのデータベース内の Hive または Iceberg テーブルを削除します。
DROP TABLE <table_name>
詳細については、Hive テーブルの削除 および Iceberg テーブルの削除 を参照してください。
次の例では、hive_table という名前の Hive テーブルを削除します。
DROP TABLE hive_table FORCE