翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
きめ細かなアクセスコントロールを備えた Apache Delta Lake
Amazon EMR リリース 6.15.0 以降には、Spark SQL AWS Lake Formation でデータを読み書きするときに、Delta Lake を使用した に基づくきめ細かなアクセスコントロールのサポートが含まれています。Amazon EMR は、Delta Lake を使用した、テーブル、行、列、セルレベルのアクセスコントロールをサポートしています。この機能を利用してコピーオンライトテーブルに対してスナップショットクエリを実行することで、特定のコミットまたは圧縮の瞬間におけるテーブルの最新のスナップショットをクエリすることができます。
Lake Formation で Delta Lake を使用するには、次のコマンドを実行します。
EMR 7.10 以降で Lake Formation で Delta Lake を使用するには、次のコマンドを実行します。
spark-sql \ --conf spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension \ --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog
EMR 6.15 から 7.9 で Lake Formation で Delta Lake を使用するには、以下を実行します。
spark-sql \ --conf spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension,com.amazonaws.emr.recordserver.connector.spark.sql.RecordServerSQLExtension \ --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog \ --conf spark.sql.catalog.spark_catalog.lf.managed=true
Lake Formation でレコードサーバーを使用して Spark カタログを管理する場合は、spark.sql.catalog.<managed_catalog_name>.lf.managed を true に設定します。
次のサポートマトリックスは、Lake Formation を使用した Delta Lake のいくつかのコア機能を示しています。
| Copy on Write | 読み取り時マージ | |
|---|---|---|
|
スナップショットクエリ - Spark SQL |
✓ |
✓ |
|
読み取り最適化クエリ - Spark SQL |
✓ |
✓ |
|
増分クエリ |
サポートされません |
サポートされません |
|
タイムトラベルクエリ |
サポートされません |
サポートされません |
|
メタデータテーブル |
✓ |
✓ |
|
DML |
✓ |
✓ |
|
DDL コマンド |
||
|
Spark データソースクエリ |
||
|
Spark データソース書き込み |
Glue データカタログでの Delta Lake AWS テーブルの作成
Lake Formation を使用した Amazon EMR は、DDL コマンドと Delta テーブルの作成をサポートしていません。 AWS Glue データカタログにテーブルを作成するには、次の手順に従います。
-
次の例を使用して、Delta テーブルを作成します。S3 の場所が存在することを確認します。
spark-sql \ --conf "spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension" \ --conf "spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog" > CREATE DATABASE if not exists<DATABASE_NAME>LOCATION 's3://<S3_LOCATION>/transactionaldata/native-delta/<DATABASE_NAME>/'; > CREATE TABLE<TABLE_NAME>(x INT, y STRING, z STRING) USING delta; > INSERT INTO<TABLE_NAME>VALUES (1, 'a1', 'b1'); テーブルの詳細については、https://console.aws.amazon.com/glue/
を参照してください。 左側のナビゲーションで [データカタログ] を展開し、[テーブル] を選択し、作成したテーブルを選択します。スキーマでは、Spark で作成した Delta テーブルに、 Glue AWS のデータ型 のすべての列が保存されていることがわかり
array<string>ます。Lake Formation で列とセルレベルのフィルターを定義するには、スキーマから
col列を削除し、テーブルスキーマにある列を追加します。この例では、列x、y、zを追加します。