Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Lac Delta et Lake Formation sur Amazon EMR
Les EMR versions 6.15.0 et ultérieures d'Amazon incluent la prise en charge d'un contrôle d'accès précis basé sur Delta Lake lorsque vous lisez et écrivez des données AWS Lake Formation avec Spark. SQL Amazon EMR prend en charge le contrôle d'accès au niveau des tables, des lignes, des colonnes et des cellules avec Delta Lake. Grâce à cette fonctionnalité, vous pouvez exécuter des requêtes instantanées sur copy-on-write des tables pour demander le dernier instantané de la table à un instant de validation ou de compactage donné.
Pour utiliser Delta Lake with Lake Formation, exécutez la commande suivante.
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
Si vous souhaitez que Lake Formation utilise un serveur d'enregistrement pour gérer votre catalogue Spark, définissez spark.sql.catalog.<managed_catalog_name>.lf.managed
ce paramètre sur true.
La matrice de prise en charge suivante répertorie certaines fonctionnalités essentielles de Delta Lake avec Lake Formation :
Copie sur écriture | fusion sur lecture | |
---|---|---|
Requêtes instantanées - Spark SQL |
✓ |
✓ |
Requêtes optimisées pour la lecture - Spark SQL |
✓ |
✓ |
Requêtes progressives |
Non pris en charge |
Non pris en charge |
Requêtes Time Travel |
Non pris en charge |
Non pris en charge |
Tables de métadonnées |
✓ |
✓ |
DML |
✓ |
✓ |
DDLcommandes |
||
Requêtes de source de données Spark |
||
Écritures de source de données Spark |
Création d'une table Delta Lake dans AWS Glue Data Catalog
Amazon EMR with Lake Formation ne prend pas en charge DDL les commandes ni la création de tables Delta. Procédez comme suit pour créer des tables dans le catalogue de données AWS Glue.
-
Utilisez l'exemple suivant pour créer une table Delta. Assurez-vous que votre emplacement S3 existe.
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'); Pour consulter les détails de votre tableau, rendez-vous sur https://console.aws.amazon.com/glue/
. Dans le volet de navigation de gauche, développez le catalogue de données, choisissez Tables, puis choisissez la table que vous avez créée. Sous Schema, vous devriez voir que la table Delta que vous avez créée avec Spark stocke toutes les colonnes dans un type de
array<string>
données tel que AWS Glue.Pour définir des filtres au niveau des colonnes et des cellules dans Lake Formation, supprimez la
col
colonne de votre schéma, puis ajoutez les colonnes figurant dans le schéma de votre table. Dans cet exemple, ajoutez les colonnesx
y
, etz
.