翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Delta Lake と Lake Formation
Amazon EMRリリース 6.15.0 以降には、Spark AWS Lake Formation でデータを読み書きする場合の Delta Lake による に基づくきめ細かなアクセスコントロールのサポートが含まれていますSQL。Amazon EMR は、Delta Lake によるテーブル、行、列、およびセルレベルのアクセスコントロールをサポートしています。この機能を使用すると、 copy-on-write テーブルに対してスナップショットクエリを実行して、特定のコミットまたは圧縮の瞬間にテーブルの最新のスナップショットをクエリできます。
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 データソース書き込み |
AWS Glue データカタログでの Delta Lake テーブルの作成
Lake Formation EMRを使用した Amazon は、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 テーブルに、 AWS Glue のデータ型のすべての列が保存されていることがわかり
array<string>
ます。Lake Formation で列とセルレベルのフィルターを定義するには、スキーマから
col
列を削除し、テーブルスキーマにある列を追加します。この例では、列x
、、y
および を追加しますz
。