Conexões do Amazon S3
Você pode usar o AWS Glue para Spark para ler e gravar arquivos no Amazon S3. O AWS Glue para Spark é compatível com muitos formatos de dados comuns armazenados no Amazon S3 prontos para uso, incluindo CSV, Avro, JSON, Orc e Parquet. Para obter mais informações sobre os formatos de dados compatíveis, consulte Opções de formato de dados para entradas e saídas no AWS Glue para Spark. Cada formato de dados pode ser compatível um conjunto diferente de atributos do AWS Glue. Consulte a página do seu formato de dados para obter os detalhes específicos da compatibilidade com atributos. Além disso, você pode ler e gravar arquivos versionados armazenados nas estruturas de data lake do Hudi, Iceberg e do Delta Lake. Para obter mais informações sobre estruturas de data lake, consulte Usar estruturas de data lake com trabalhos do AWS Glue ETL.
Com o AWS Glue, você pode particionar os objetos do Amazon S3 em uma estrutura de pastas durante a gravação e depois recuperá-los por partição para melhorar a performance usando uma configuração simples. Você também pode definir a configuração para agrupar arquivos pequenos ao transformar seus dados, para melhorar a performance. Você pode ler e gravar arquivos bzip2
e gzip
no Amazon S3.
Tópicos
Configurar conexões do S3
Para se conectar ao Amazon S3 em um trabalho do AWS Glue com Spark, você precisará de alguns pré-requisitos:
-
O trabalho do AWS Glue deve ter permissões do IAM para buckets relevantes do Amazon S3.
Em certos casos, você precisará configurar pré-requisitos adicionais:
-
Ao configurar o acesso entre contas, os controles de acesso apropriados no bucket do Amazon S3.
-
Por motivos de segurança, você pode optar por rotear suas solicitações do Amazon S3 por meio de uma Amazon VPC. Essa abordagem pode introduzir desafios de largura de banda e disponibilidade. Para ter mais informações, consulte Endpoints da Amazon VPC para o Amazon S3.
Referência de opções de conexão do Amazon S3
Designa uma conexão com o Amazon S3.
Como o Amazon S3 gerencia arquivos em vez de tabelas, além de especificar as propriedades de conexão fornecidas neste documento, você precisará especificar configurações adicionais sobre seu tipo de arquivo. Você especifica essas informações por meio de opções de formato de dados. Para obter mais informações sobre essas opções de formato, consulte Opções de formato de dados para entradas e saídas no AWS Glue para Spark. Você também pode especificar essas informações fazendo a integração com o catálogo de dados do AWS Glue.
Para obter um exemplo da distinção entre opções de conexão e opções de formato, considere como o método create_dynamic_frame_from_options usa connection_type
, connection_options
, format
e format_options
. Esta seção discute especificamente os parâmetros fornecidos às connection_options
.
Use as seguintes opções de conexão com "connectionType": "s3"
:
-
"paths"
: (obrigatório) uma lista de caminhos do Amazon S3 dos quais fazer a leitura. -
"exclusions"
: (Opcional) Uma string contendo uma lista JSON de padrões glob de estilo Unix padrões para excluir. Por exemplo,"[\"**.pdf\"]"
exclui todos os arquivos PDF. Para obter mais informações sobre a sintaxe glob compatível com o AWS Glue, consulte Incluir e excluir padrões. -
"compressionType"
: ou "compression
": (opcional) especifica como os dados são compactados. Use"compressionType"
para fontes do Amazon S3 e"compression"
para destinos do Amazon S3. Isso geralmente não é necessário se os dados tem uma extensão de arquivo padrão. Os possíveis valores são"gzip"
e"bzip2"
). Formatos de compactação adicionais podem ser compatíveis com formatos específicos. Para obter os detalhes específicos da compatibilidade com atributos, consulte a página do seu formato de dados. -
"groupFiles"
: (opcional) o agrupamento de arquivos é ativado por padrão quando a entrada contiver mais de 50.000 arquivos. Para habilitar o agrupamento com menos de 50.000 arquivos, defina esse parâmetro como"inPartition"
. Para desabilitar o agrupamento quando houver mais de 50.000 arquivos, defina esse parâmetro como"none"
. -
"groupSize"
: (Opcional) O tamanho do grupo de destino em bytes. O padrão é calculado com base no tamanho de dados de entrada e o tamanho de seu cluster. Quando há menos de 50.000 arquivos de entrada,"groupFiles"
deve ser definido como"inPartition"
para poder entrar em vigor. -
"recurse"
: (Opcional) Se definido como verdadeiro, recursivamente lê arquivos em todos os subdiretórios de acordo com os caminhos especificados. -
"maxBand"
: (opcional, avançado) essa opção controla a duração, em milissegundos, após a qual a listagems3
provavelmente será consistente. Os arquivos com carimbos de data e hora de modificação que estão dentro dos últimosmaxBand
milissegundos são rastreados principalmente ao usarJobBookmarks
para considerar a consistência final do Amazon S3. A maioria dos usuários não precisa definir essa opção. O valor padrão é 900.000 milissegundos, ou 15 minutos. -
"maxFilesInBand"
: (opcional, avançado) essa opção especifica o número máximo de arquivos que devem ser salvos dos últimosmaxBand
segundos. Se esse número for excedido, os arquivos extras são ignorados e apenas processados na próxima execução do trabalho. A maioria dos usuários não precisa definir essa opção. -
"isFailFast"
: (opcional) essa opção determina se um trabalho de ETL do AWS Glue lança exceções de análise do leitor. Se definido comotrue
, os trabalhos falham rapidamente se quatro tentativas da tarefa do Spark falharem em analisar os dados corretamente. -
"catalogPartitionPredicate"
: (opcional) usado para leitura. O conteúdo de uma cláusula SQLWHERE
. Usado ao ler tabelas do catálogo de dados com uma quantidade muito grande de partições. Recupera partições correspondentes dos índices do catálogo de dados. Usado compush_down_predicate
, uma opção do método create_dynamic_frame_from_catalog (e outros métodos similares). Para ter mais informações, consulte Filtragem do lado do servidor usando predicados de partição de catálogo. -
"partitionKeys"
: (opcional) usado para gravação. Uma matriz de strings de rótulo da coluna. O AWS Glue particionará os dados conforme especificado por essa configuração. Para ter mais informações, consulte Gravar partições. -
"excludeStorageClasses"
: (opcional) usado para leitura. Uma matriz de strings especificando as classes de armazenamento do Amazon S3. O AWS Glue excluirá objetos do Amazon S3 com base nessa configuração. Para ter mais informações, consulte Excluir classes de armazenamento do Amazon S3.
Sintaxes de conexão obsoletas para formatos de dados
Certos formatos de dados podem ser acessados usando a sintaxe de um tipo de conexão específico. Essa sintaxe está obsoleta. Em seu lugar, recomendamos que você especifique os formatos usando o tipo de conexão s3
e as opções de formato fornecidas em Opções de formato de dados para entradas e saídas no AWS Glue para Spark.
“connectionType”: “orc”
Designa uma conexão para arquivos armazenados no Amazon S3 no formato de arquivo Apache Hive Optimized Row Columnar (ORC)
Use as seguintes opções de conexão com "connectionType": "orc"
:
-
paths
: (obrigatório) uma lista de caminhos do Amazon S3 dos quais fazer a leitura. -
(Outras opções de pares de nome/valor): qualquer opção adicional, incluindo opções de formatação, são transmitidas diretamente à
DataSource
do SparkSQL.
"connectionType": "parquet"
Designa uma conexão com arquivos armazenados no Amazon S3 no formato de arquivo Apache Parquet
Use as seguintes opções de conexão com "connectionType": "parquet"
:
-
paths
: (obrigatório) uma lista de caminhos do Amazon S3 dos quais fazer a leitura. -
(Outras opções de pares de nome/valor): qualquer opção adicional, incluindo opções de formatação, são transmitidas diretamente à
DataSource
do SparkSQL.