Lago Delta e Lake Formation na Amazon EMR - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Lago Delta e Lake Formation na Amazon EMR

As EMR versões 6.15.0 e superiores da Amazon incluem suporte para controle de acesso refinado AWS Lake Formation com base no Delta Lake quando você lê e grava dados com o Spark. SQL A Amazon EMR oferece suporte ao controle de acesso em nível de tabela, linha, coluna e célula com o Delta Lake. Com esse recurso, você pode executar consultas de instantâneos em copy-on-write tabelas para consultar o instantâneo mais recente da tabela em um determinado instante de confirmação ou compactação.

Para usar o Delta Lake com o Lake Formation, execute o comando a seguir.

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

Se quiser que o Lake Formation use o servidor de registros para gerenciar o catálogo do Spark, defina spark.sql.catalog.<managed_catalog_name>.lf.managed como verdadeiro.

A seguinte matriz de apoio lista alguns dos principais recursos do Delta Lake com o Lake Formation:

Copiar na gravação mesclar na leitura

Consultas de instantâneos - Spark SQL

Consultas otimizadas para leitura - Spark SQL

Consultas incrementais

Sem compatibilidade

Sem compatibilidade

Consultas de viagem no tempo

Sem compatibilidade

Sem compatibilidade

Tabelas de metadados

DMLINSERTcomandos

Comandos DDL

Consultas de fontes de dados do Spark

Gravações na fonte de dados do Spark

Criação de uma tabela Delta Lake no AWS Glue Data Catalog

O Amazon EMR with Lake Formation não suporta DDL comandos e criação de tabelas Delta. Siga estas etapas para criar tabelas no AWS Glue Data Catalog.

  1. Use o exemplo a seguir para criar uma tabela do Delta. Certifique-se de que sua localização no 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');
  2. Para ver os detalhes da sua mesa, acesse https://console.aws.amazon.com/glue/.

  3. No painel de navegação à esquerda, expanda Data Catalog, escolha Tabelas e a tabela que você criou. Em Esquema, você verá que a tabela Delta que você criou com o Spark armazena todas as colunas em um tipo de dados do array<string> AWS Glue.

  4. Para definir filtros em nível de coluna e célula no Lake Formation, remova a coluna col do esquema e, em seguida, adicione as colunas que estão no esquema da tabela. Neste exemplo, adicione as colunas x, y e z.