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á.
Uso do formato XML no AWS Glue
O AWS Glue recupera dados de fontes e grava dados em destinos armazenados e transportados em vários formatos de dados. Se seus dados forem armazenados ou transportados no formato de dados XML, este documento apresenta os recursos disponíveis para usar seus dados no AWS Glue.
O AWS Glue é compatível com o uso do formato XML. Esse formato representa estruturas de dados altamente configuráveis e rigidamente definidas que não são baseadas em linhas ou colunas. O XML é altamente padronizado. Para uma introdução ao formato pela autoridade padrão, consulte XML Essentials
Você pode usar o AWS Glue para ler arquivos XML do Amazon S3, bem como arquivos bzip
e gzip
contendo arquivos XML. Você configura o comportamento de compactação no Parâmetros de conexão do S3 e não na configuração apresentada nesta página.
A tabela a seguir mostra quais são os recursos comuns do AWS Glue compatíveis com a opção de formato XML.
Leitura | Escrever | Leitura de transmissão | Agrupar arquivos pequenos | Marcadores de trabalho |
---|---|---|---|---|
Compatível | Sem suporte | Sem suporte | Compatível | Compatível |
Exemplo: ler XML do S3
O leitor de XML usa um nome de tag XML. Ele examina elementos com essa tag em sua entrada para inferir um esquema e preenche um DynamicFrame com valores correspondentes. A funcionalidade de XML do AWS Glue se comporta de modo semelhante a XML Data Source for Apache Spark
Pré-requisitos: você precisará dos caminhos do S3 (s3path
) para os arquivos ou pastas XML que deseja ler, além de algumas informações sobre seu arquivo XML. Você também precisará da tag para o elemento XML que deseja ler, xmlTag
.
Configuração: nas opções da sua função, especifique format="xml"
. Em seu connection_options
, use a chave paths
para especificar s3path
. Você pode configurar adicionalmente como o leitor interage com o S3 no connection_options
. Para mais detalhes, consulte os tipos de conexão e opções para ETL no AWS Glue: Parâmetros de conexão do S3. Em seu format_options
, use a chave rowTag
para especificar xmlTag
. Você pode configurar adicionalmente como o leitor interpreta os arquivos XML em seu format_options
. Para obter mais detalhes, consulte XML Configuration Reference (Referência de configuração de XML).
O seguinte script de ETL do AWS Glue mostra o processo de leitura de arquivos ou pastas XML provenientes do S3.
Referência de configuração de XML
Você pode usar o seguinte format_options
sempre que as bibliotecas do AWS Glue especificarem format="xml"
:
-
rowTag
: especifica a tag XML no arquivo a ser tratada como uma linha. Tags de linha não podem ser de fechamento automático.-
Tipo: texto, obrigatório
-
-
encoding
: especifica a codificação de caracteres. Pode ser o nome ou alias de um Charsetcompatível com nosso ambiente de runtime. Não oferecemos garantias específicas em relação ao suporte à codificação, mas as codificações principais devem funcionar. -
Tipo: texto, padrão:
"UTF-8"
-
-
excludeAttribute
: especifica se você deseja excluir atributos em elementos ou não.-
Tipo: booliano, padrão:
false
-
-
treatEmptyValuesAsNulls
: especifica se o espaço em branco deve ser tratado como um valor nulo.-
Tipo: booliano, padrão:
false
-
-
attributePrefix
: um prefixo para atributos a fim de diferenciá-los de elementos de texto secundários. Esse prefixo é usado para nomes de campo.-
Tipo: texto, padrão:
"_"
-
-
valueTag
: a tag usada para um valor quando há atributos no elemento que não têm secundários.-
Tipo: texto, padrão:
"_VALUE"
-
-
ignoreSurroundingSpaces
: especifica se o espaço em branco que envolve valores deve ser ignorado.-
Tipo: booliano, padrão:
false
-
-
withSchema
: contém o esquema esperado, em situações nas quais você deseja substituir o esquema inferido. Se você não usar essa opção, o AWS Glue inferirá o esquema com base nos dados XML.-
Tipo: texto, padrão: não aplicável
-
O valor deve ser um objeto JSON que represente um
StructType
.
-
Especificar manualmente o esquema XML
Exemplo de esquema XML manual
Este é um exemplo de uso da opção de formato withSchema
para especificar o esquema para dados XML.
from awsglue.gluetypes import * schema = StructType([ Field("id", IntegerType()), Field("name", StringType()), Field("nested", StructType([ Field("x", IntegerType()), Field("y", StringType()), Field("z", ChoiceType([IntegerType(), StringType()])) ])) ]) datasource0 = create_dynamic_frame_from_options( connection_type, connection_options={"paths": ["s3://xml_bucket/someprefix"]}, format="xml", format_options={"withSchema": json.dumps(schema.jsonValue())}, transformation_ctx = "" )