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_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>
統合カタログからデータをクエリする
統合カタログからデータをクエリするには、次の手順に従います。
-
統合カタログが関連付けられている統合データソース内のデータベースを表示するには、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>