翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Hive で Iceberg クラスターを使用する
Amazon EMR バージョン 6.9.0 以降では、オープンソースの Iceberg Hive インテグレーションに必要なセットアップ手順を実行しなくても、Hive クラスターで Iceberg を使用できます。Amazon EMR バージョン 6.8.0 以前では、ブートストラップアクションを使用してiceberg-hive-runtime
jar をインストールし、Hive を Iceberg サポート用に設定できます。
Amazon EMR 6.9.0 には、Hive 3.1.3 と Iceberg 0.14.1 を統合するための機能がすべて含まれています
アイスバーグクラスターの作成
Iceberg がインストールされたクラスターはAWS Management Console、、、、、、Amazon EMR API を使用して作成できます。AWS CLIこのチュートリアルでは、を使用して Amazon EMR クラスターで Iceberg を操作します。AWS CLIコンソールを使用して Iceberg がインストールされたクラスターを作成するには、「Amazon Athena、Amazon EMR、AWS Glue を使用して Iceberg データレイクを構築する
Amazon EMR で Iceberg をとともに使用するにはAWS CLI、まず以下の手順を使用してクラスターを作成します。AWS CLIまたは Java SDK を使用して Iceberg 分類を指定する方法については、クラスター作成時に AWS CLI を使用して設定を指定するまたはを参照してくださいクラスター作成時に Java SDK を使用して設定を指定する。以下の内容で configurations.json
という名前のファイルを作成します。
[{ "Classification":"iceberg-defaults", "Properties":{"iceberg.enabled":"true"} }]
次に、以下の設定でクラスターを作成し、例の Amazon S3 バケットパスとサブネット ID を独自のものに置き換えます。
aws emr create-cluster --release-label emr-6.9.0 \ --applications Name=Hive \ --configurations file://iceberg_configurations.json \ --region us-east-1 \ --name My_hive_Iceberg_Cluster \ --log-uri s3://
DOC-EXAMPLE-BUCKET
/ \ --instance-type m5.xlarge \ --instance-count 2 \ --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-1234567890abcdef
Hive アイスバーグクラスターは以下のことを行います。
-
Iceberg Hive ランタイム JAR を Hive にロードし、Hive エンジンの Iceberg 関連の設定を有効にします。
-
Amazon EMR Hive の動的実行エンジン選択を有効にして、ユーザーが Iceberg 互換のサポート対象実行エンジンを設定できないようにします。
Hive Iceberg クラスターは現在AWS Glue データカタログをサポートしていません。デフォルトの Iceberg カタログはでHiveCatalog
、これは Hive 環境用に設定されたメタストアに対応しています。カタログ管理の詳細については、Apache Hive ドキュメントの「カタログ管理
機能のサポート
Amazon EMR 6.9.0 は Hive 3.1.3 と Iceberg 0.14.1 をサポートしています。この機能サポートは、Hive 3.1.2 と 3.1.3 の Iceberg 互換機能に限定されています。以下の コマンドがサポートされています。
-
テーブルの作成
-
分割されていないテーブル — Hive の外部テーブルは、次のようにストレージハンドラーを提供することで作成できます。
CREATE EXTERNAL TABLE x (i int) STORED BY 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler'
-
分割テーブル — Hive の外部分割テーブルは次のように作成できます。
CREATE EXTERNAL TABLE x (i int) PARTITIONED BY (j int) STORED BY 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler'
注記 ORC/AVRO/PARQUET
STORED AS
のファイル形式は Hive 3 ではサポートされていません。デフォルトで、唯一のオプションはParquetです。 -
-
テーブルの削除 —
DROP TABLE
このコマンドは、次の例のようにテーブルを削除するために使用されます。DROP TABLE [IF EXISTS] table_name [PURGE];
-
テーブルの読み込み — 次の例のように、
SELECT
ステートメントを使用して Hive の Iceberg テーブルを読み取ることができます。サポートされる実行エンジンは MR と Tez です。SELECT * FROM table_name
Hive の選択構文については、「LanguageManual 選択
」を参照してください。Hive の Iceberg テーブルを使用した SELECT ステートメントの詳細については、「Apache アイスバーグセレクト」 を参照してください。 -
テーブルへの挿入 — HiveQL
INSERT INTO
のステートメントは、Map Reduce 実行エンジンをサポートしている Iceberg テーブルでのみ機能します。Amazon EMR Hive は実行時に Iceberg テーブルのエンジンを選択するため、Amazon EMR ユーザーは実行エンジンを明示的に設定する必要はありません。-
単一テーブルへの挿入 — 例:
INSERT INTO table_name VALUES ('a', 1); INSERT INTO table_name SELECT...;
-
マルチテーブル挿入 — ステートメントへの非アトミックなマルチテーブル挿入がサポートされています。例:
FROM source INSERT INTO table_1 SELECT a, b INSERT INTO table_2 SELECT c,d;
-