翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon で Spark を使用して AWS Glue Data Catalog でマルチカタログ階層を操作する EMR
Amazon EMRクラスターを登録して AWS Glue Data Catalog にアクセスできます。これにより、テーブルやその他のカタログリソースをさまざまなコンシューマーが利用できるようになります。 AWS Glue Data Catalog は、Amazon S3 データレイク間でデータを統合するためのマルチカタログ階層をサポートしています。また、データにアクセスRESTAPIするための Hive メタストアAPIとオープンソースの Apache Iceberg の両方を提供します。これらの機能は、Amazon EMR および Amazon Athena や Amazon Redshift などの他の サービスで使用できます。
カタログリソースの整理方法
AWS Glue データカタログでリソースを作成すると、Apache Iceberg RESTAPIまたは Hive メタストアをサポートする任意のSQLエンジンからリソースにアクセスできます。 AWS Lake Formation はアクセス許可を管理します。
AWS Glue Data Catalog では、データはカタログ、データベース、テーブルの論理階層に整理されます。
カタログ – スキーマやテーブルなど、データストアからオブジェクトを保持する論理コンテナ。
-
Redshift Managed Storage (RMS) テーブルを保存するカタログ – RMSテーブルを保存するカタログを管理する場合、Iceberg を使用してこれらのテーブルにアクセスできます。
データベース – カタログ内のテーブルやビューなどのデータオブジェクトを整理します。
テーブルとビュー – 抽象化レイヤーと理解可能なスキーマを提供するデータベース内のデータオブジェクト。基盤となるデータにアクセスするためのレイヤーを提供します。このデータは、さまざまな形式や場所にある場合があります。
Amazon で使用するデータカタログの設定 EMR
開始するには、Amazon EMR ツールをサポートするようにカタログを設定します。 AWS Glue データカタログは、Hive メタストア互換性と Iceberg REST互換の を提供しますAPIs。
Hive メタストアEMRを使用した Amazon の設定
これを設定する方法については、「 AWS Glue ユーザーガイド」の「Spark ジョブの Glue データカタログサポート」を参照してください。 AWS このトピックでは、 Glue Data Catalog AWS を Hive メタストアとして設定し、エンドポイントとして利用できるようにする方法について説明します。さらに、Spark AWS の Apache Hive メタストアとして Glue Data Catalog を使用するで、Spark メタストアとして Glue Data Catalog を指定する方法を示す Amazon EMRドキュメントも用意されています。 AWS
Glue Data Catalog AWS のリソースにアクセスするためのアクセス許可
このセクションでは、カタログデータで Amazon EMR ツールを使用するためのIAMポリシー要件について説明します。クラスターを AWS Glue データカタログに登録した後、後で作成されたデータカタログの作成と変更を検出するには、次のアクセス許可が必要です。
Glue:GetCatalog
Glue:GetCatalogs
sts:AssumeRole
sts:TagSession
sts:SetContext
sts:SetSourceIdentity
ほとんどの場合、アクセス許可を割り当てるときは、 IAMロールを作成してアクセス許可を割り当てることをお勧めします。
さらに、カタログデータをクエリするには、 を使用してデータカタログのアクセス許可を設定する必要があります AWS Lake Formation。でデータカタログのアクセス許可を設定する方法の詳細については AWS Lake Formation、「Data Catalog リソースに対するアクセス許可の付与と取り消し」を参照してください。
クラスターを作成して設定し、カタログオブジェクトに対するアクセス許可を設定したら、データをクエリおよび処理するためのジョブを送信できます。
Glue データカタログのマルチカタログ階層にアクセスするように Spark AWS を設定する
EMR 7.5 では、 Glue のマルチカタログ階層を使用するように Spark AWS を設定できます。マルチカタログ階層を使用すると、次のことが可能になります。
テーブル、ビュー、マテリアライズドビューなどの Redshift Managed Storage (RMS) データを既存の Amazon Redshift データウェアハウスから AWS Glue データカタログに持ち込みます。これらのオブジェクトは、 EC2および EMR Serverless EMR で を使用してクエリできます。
RMS カタログを作成し、ゼロRMSETLを使用してデータカタログを AWS グルーし、データを に保存し、Iceberg 互換クエリエンジンでデータをクエリします。
圧縮 AWS 、スナップショット、保持を含むフル機能のストレージ管理を使用して、 Glue Data Catalog にマネージド Iceberg テーブルを作成します。
Spark セッションの初期化時にマルチカタログに接続する
次の例は、インタラクティブな Spark シェル、Spark 送信、または Amazon EMR Notebooks を使用して AWS Glue のマルチカタログ階層を操作する方法を示しています。
Glue データカタログを使用して Redshift マネージドストレージへの Spark AWS セッションを初期化する
次のサンプルコマンドは、 Glue データカタログで Spark AWS セッションを初期化します。
spark-sql \ --conf spark.sql.catalog.rms=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.rms.type=glue \ --conf spark.sql.catalog.rms.glue.id=
Glue RMS catalog ID
\ --conf spark.sql.defaultCatalog=rms --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
次のサンプルは、 Glue データカタログで Iceberg RESTAPIと Redshift マネージドストレージを使用して Spark AWS セッションを初期化します。
spark-sql \ --conf spark.sql.catalog.rms=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.rms.type=rest \ --conf spark.sql.catalog.rms.warehouse=
glue RMS catalog ID
\ --conf spark.sql.catalog.rms.uri=Glue endpoint URI
/iceberg \ --conf spark.sql.catalog.rms.rest.sigv4-enabled=true \ --conf spark.sql.catalog.rms.rest.signing-name=glue \ --conf spark.sql.defaultCatalog=rms \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
Spark Iceberg で AWS Glue マルチカタログ階層を使用する方法の詳細については、「Spark で Iceberg クラスターを使用する」を参照してください。
マルチカタログ設定に関する考慮事項と制限事項
Apache Hive メタストアでのマルチカタログ階層の使用はサポートされていません。
Apache Iceberg でマルチカタログ階層を使用すると、 の使用時に Apache Hive メタストアへのフォールバックをサポートできません
SparkSessionCatalog
。EMR ランタイムロールを持つEC2クラスターの は、マルチカタログ階層をサポートしていません。
EMR が有効になっているEC2クラスターの は、マルチカタログ階層をサポート AWS Lake Formation していません。