Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Las versiones 6.15.0 y posteriores de Amazon EMR incluyen compatibilidad con un control de acceso detallado basado en Delta Lake al leer y AWS Lake Formation escribir datos con Spark SQL. Amazon EMR es compatible con el control de acceso a nivel de tabla, fila, columna y celda con Delta Lake. Con esta función, puede ejecutar consultas de instantáneas en copy-on-write las tablas para consultar la última instantánea de la tabla en un instante de confirmación o compactación determinado.
Para usar Delta Lake con Lake Formation, ejecute el siguiente comando.
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 quiere que Lake Formation utilice el servidor de registros para administrar su catálogo de Spark, establezca spark.sql.catalog.<managed_catalog_name>.lf.managed
en verdadero.
La siguiente matriz de compatibilidad enumera algunas de las características principales de Delta Lake con Lake Formation:
Copiar al escribir | fusionar al leer | |
---|---|---|
Consultas de instantáneas: Spark SQL |
✓ |
✓ |
Consultas optimizadas para la lectura: Spark SQL |
✓ |
✓ |
Consultas incrementales |
No admitido |
No admitido |
Consultas de viaje en el tiempo |
No admitido |
No admitido |
Tabla de metadatos |
✓ |
✓ |
Comandos |
✓ |
✓ |
Comandos DDL |
||
Consultas de orígenes de datos de Spark |
||
Escrituras de orígenes de datos de Spark |
Creación de una tabla de Delta Lake en AWS Glue Data Catalog
Amazon EMR with Lake Formation no admite los comandos DDL ni la creación de tablas Delta. Siga estos pasos para crear tablas en el catálogo de datos de AWS Glue.
-
Cree una tabla Delta con el siguiente ejemplo. Asegúrese de que su ubicación de S3 exista.
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'); Para ver los detalles de la tabla, vaya a https://console.aws.amazon.com/glue/
. En el menú de navegación de la izquierda, expanda el Catálogo de datos, elija Tablas y, a continuación, elija la tabla que ha creado. En Esquema, deberías ver que la tabla Delta que creaste con Spark almacena todas las columnas en un tipo de datos llamado
array<string>
in AWS Glue.Para definir filtros a nivel de columna y celda en Lake Formation, elimine la columna
col
del esquema y, a continuación, agregue las columnas que están en el esquema de la tabla. En este ejemplo, añada las columnasx
,y
yz
.