Classe DynamicFrameWriter
Métodos
__init__
__init__(glue_context)
glue_context– O Classe GlueContext a ser usado.
from_options
from_options(frame, connection_type, connection_options={},
format=None, format_options={}, transformation_ctx="")
Escreve um DynamicFrame usando a conexão e o formato especificados.
frame– ODynamicFramea ser escrito.connection_type: o tipo de conexão. Os valores válidos incluems3,mysql,postgresql,redshift,sqlservereoracle.connection_options– Opções de conexão, como caminho e tabela de banco de dados (opcional). Para umconnection_typedos3, um caminho do Amazon S3 é definido.connection_options = {"path": "s3://aws-glue-target/temp"}Para conexões JDBC, várias propriedades devem ser definidas. Observe que o nome do banco de dados deve fazer parte do URL. Ele também pode ser incluído nas opções de conexão.
Atenção
Não é recomendável armazenar senhas no script. Considere usar
boto3para recuperá-los do AWS Secrets Manager ou do catálogo de dados do AWS Glue.connection_options = {"url": "jdbc-url/database", "user": "username", "password":passwordVariable,"dbtable": "table-name", "redshiftTmpDir": "s3-tempdir-path"}A propriedade
dbtableé o nome da tabela JDBC. Para armazenamentos de dados JDBC que oferecem suporte a esquemas dentro de um banco de dados, especifiqueschema.table-name. Se um esquema não for fornecido, o esquema "público" padrão será usado.Para obter mais informações, consulte Tipos e opções de conexão para ETL no AWS Glue para Spark.
format: uma especificação de formato (opcional). Essa ação é usada para um Amazon Simple Storage Service (Amazon S3) ou uma conexão do AWS Glue que ofereça suporte a vários formatos. Consulte Opções de formato de dados para entradas e saídas no AWS Glue para Spark para obter os formatos compatíveis.format_options: as opções de formato para o formato especificado. Consulte Opções de formato de dados para entradas e saídas no AWS Glue para Spark para obter os formatos compatíveis.transformation_ctx– Um contexto de transformação a ser usado (opcional).
from_catalog
from_catalog(frame, name_space, table_name, redshift_tmp_dir="", transformation_ctx="")
Escreve um DynamicFrame usando o banco de dados do catálogo e o nome da tabela especificados.
frame– ODynamicFramea ser escrito.name_space– O mecanismo de banco de dados a ser usado.table_name– Otable_namea ser usado.redshift_tmp_dir: um diretório temporário do Amazon RedShift a ser usado (opcional).transformation_ctx– Um contexto de transformação a ser usado (opcional).-
additional_options: opções adicionais fornecidas ao AWS Glue.Para gravar em tabelas governadas pelo Lake Formation, você pode usar estas opções adicionais:
-
transactionId: (string) o ID da transação no qual fazer a gravação na tabela governada. Esta transação já não pode ser confirmada ou anulada, ou a gravação falhará. -
callDeleteObjectsOnCancel: (booleano, opcional) Se definido comotrue(padrão), o AWS Glue chama automaticamente a APIDeleteObjectsOnCancelapós o objeto ser gravado no Amazon S3. Para obter mais informações, consulte DeleteObjectsOnCancel no Guia do desenvolvedor do AWS Lake Formation.
exemplo Exemplo: gravação em uma tabela governada no Lake Formation
txId = glueContext.start_transaction(read_only=False) glueContext.write_dynamic_frame.from_catalog( frame=dyf, database = db, table_name = tbl, transformation_ctx = "datasource0", additional_options={"transactionId":txId}) ... glueContext.commit_transaction(txId) -
from_jdbc_conf
from_jdbc_conf(frame, catalog_connection, connection_options={}, redshift_tmp_dir = "", transformation_ctx="")
Escreve um DynamicFrame usando as informações de conexão JDBC especificadas.
frame– ODynamicFramea ser escrito.catalog_connection– Uma conexão de catálogo a ser usada.connection_options– Opções de conexão, como caminho e tabela de banco de dados (opcional).redshift_tmp_dir: um diretório temporário do Amazon RedShift a ser usado (opcional).transformation_ctx– Um contexto de transformação a ser usado (opcional).
Exemplo para write_dynamic_frame
Este exemplo grava a saída localmente usando um connection_type do S3 com um argumento de caminho POSIX em connection_options, o que permite gravar no armazenamento local.
glueContext.write_dynamic_frame.from_options(\ frame = dyf_splitFields,\ connection_options = {'path': '/home/glue/GlueLocalOutput/'},\ connection_type = 's3',\ format = 'json')