Lac Delta et Lake Formation sur Amazon EMR - Amazon EMR

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

DMLINSERTcommandes

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.

  1. 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');
  2. Pour consulter les détails de votre tableau, rendez-vous sur https://console.aws.amazon.com/glue/.

  3. 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.

  4. 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 colonnes xy, etz.