Usar um cluster do Iceberg com o Trino - 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á.

Usar um cluster do Iceberg com o Trino

Desde a versão 6.6.0 do Amazon EMR, você pode usar o Iceberg com o cluster do Trino.

Neste tutorial, você usa o AWS CLI para trabalhar com o Iceberg em um cluster Trino do Amazon EMR. Para usar o console para criar um cluster com o Iceberg instalado, siga as etapas em Criar um data lake no Apache Iceberg usando o Amazon Athena, o Amazon EMR e o AWS Glue.

Criar um cluster do Iceberg

Para usar o Iceberg no Amazon EMR com AWS CLI o, primeiro crie um cluster com as etapas a seguir. Para obter informações sobre como especificar a classificação do Iceberg usando o AWS CLI, consulte Forneça uma configuração usando o AWS CLI ao criar um cluster ou. Fornecer uma configuração usando o SDK do Java ao criar um cluster

  1. Crie um arquivo iceberg.properties e defina um valor para o catálogo escolhido. Por exemplo, se você quiser usar a metastore do Hive como catálogo, o arquivo deverá ter o conteúdo a seguir.

    connector.name=iceberg hive.metastore.uri=thrift://localhost:9083

    Se você quiser usar o AWS Glue Data Catalog como sua loja, seu arquivo deve ter o seguinte conteúdo.

    connector.name=iceberg iceberg.catalog.type=glue
  2. Crie uma ação de bootstrap que copie iceberg.properties do Amazon S3 para /etc/trino/conf/catalog/iceberg.properties, como no exemplo a seguir. Para obter mais informações sobre ações de bootstrap, consulte Criar ações de bootstrap para instalar softwares adicionais.

    set -ex sudo aws s3 cp s3://DOC-EXAMPLE-BUCKET/iceberg.properties /etc/trino/conf/catalog/iceberg.properties
  3. Crie um cluster com a configuração a seguir, substituindo o exemplo de caminho de script de ações de bootstrap e o nome da chave pelos seus.

    aws emr create-cluster --release-label emr-6.7.0 \ --applications Name=Trino \ --region us-east-1 \ --name My_Trino_Iceberg_Cluster \ --bootstrap-actions '[{"Path":"s3://DOC-EXAMPLE-BUCKET","Name":"Add iceberg.properties"}]' \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=c3.4xlarge InstanceGroupType=CORE,InstanceCount=3,InstanceType=c3.4xlarge \ --use-default-roles \ --ec2-attributes KeyName=<key-name>

Inicializar uma sessão do Trino para Iceberg

Para inicializar uma sessão no Trino, execute o comando a seguir.

trino-cli --catalog iceberg

Gravar em uma tabela do Iceberg

Crie e grave na tabela com os comandos SQL a seguir.

trino> SHOW SCHEMAS; trino> CREATE TABLE default.iceberg_table ( id int, data varchar, category varchar) WITH ( format = 'PARQUET', partitioning = ARRAY['category', 'bucket(id, 16)'], location = 's3://DOC-EXAMPLE-BUCKET/<prefix>') trino> INSERT INTO default.iceberg_table VALUES (1,'a','c1'), (2,'b','c2'), (3,'c','c3');

Ler em uma tabela do Iceberg

Para ler a tabela do Iceberg, execute o comando a seguir.

trino> SELECT * from default.iceberg_table;