Clase DynamicFrameWriter
Métodos
__init__
__init__(glue_context)
glue_context
: el Clase GlueContext que se va a utilizar.
from_options
from_options(frame, connection_type, connection_options={},
format=None, format_options={}, transformation_ctx="")
Escribe un DynamicFrame
con la conexión y el formato especificados.
frame
: elDynamicFrame
que se va a escribir.connection_type
: el tipo de conexión. Entre los valores válidos se incluyen:s3
,mysql
,postgresql
,redshift
,sqlserver
yoracle
.connection_options
: opciones de conexión, como la tabla de rutas y bases de datos (opcional). Para unconnection_type
des3
, se define una ruta de Amazon S3.connection_options = {"path": "
s3://aws-glue-target/temp
"}Para conexiones JDBC, deben definirse varias propiedades. Tenga en cuenta que el nombre de la base de datos debe ser parte de la URL. Opcionalmente, se puede incluir en las opciones de conexión.
aviso
No se recomienda almacenar las contraseñas en el script. Considere utilizar
boto3
para recuperarlas de AWS Secrets Manager o del catálogo de datos de Glue AWS.connection_options = {"url": "
jdbc-url/database
", "user": "username
", "password":passwordVariable
,"dbtable": "table-name
", "redshiftTmpDir": "s3-tempdir-path
"}La propiedad
dbtable
es el nombre de la tabla de JDBC. Para almacenes de datos de JDBC que admiten esquemas dentro de una base de datos, especifiqueschema.table-name
. Si no se ha proporcionado un esquema, se usa el esquema "public" predeterminado.Para obtener más información, consulte Tipos de conexión y opciones para ETL en AWS Glue para Spark.
format
: una especificación de formato (opcional). Se utiliza para Amazon Simple Storage Service (Amazon S3) o una conexión de AWS Glue que admite diversos formatos. Consulte en Opciones de formato de datos para las entradas y las salidas en AWS Glue para Spark los formatos que se admiten.format_options
: opciones del formato especificado. Consulte en Opciones de formato de datos para las entradas y las salidas en AWS Glue para Spark los formatos que se admiten.transformation_ctx
: contexto de transformación que se va a utilizar (opcional).
from_catalog
from_catalog(frame, name_space, table_name, redshift_tmp_dir="", transformation_ctx="")
Escribe y devuelve un DynamicFrame
con la base de datos de catálogos especificada y un nombre de tabla.
frame
: elDynamicFrame
que se va a escribir.name_space
: la base de datos que se va a utilizar.table_name
: eltable_name
que se va a utilizar.redshift_tmp_dir
: directorio provisional de Amazon Redshift que se va a utilizar (opcional).transformation_ctx
: contexto de transformación que se va a utilizar (opcional).-
additional_options
: opciones adicionales para AWS Glue.Para escribir en tablas que se rigen por Lake Formation, puede utilizar estas opciones adicionales:
-
transactionId
(cadena): ID de transacción en el que se debe escribir en la tabla regida. Esta transacción no se puede confirmar ni anular, de lo contrario, se producirán errores en la escritura. -
callDeleteObjectsOnCancel
(booleano, opcional): si se configura entrue
(el valor predeterminado), AWS Glue llama automáticamente a la APIDeleteObjectsOnCancel
después de escribir el objeto en Amazon S3. Para obtener más información, consulte DeleteObjectsOnCancel en la Guía para desarrolladores de AWS Lake Formation.
ejemplo Ejemplo: Escribir en una tabla regida en 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="")
Escribe un DynamicFrame
mediante la información de la conexión de JDBC especificada.
frame
: elDynamicFrame
que se va a escribir.catalog_connection
: conexión al catálogo que se va a utilizar.connection_options
: opciones de conexión, como la tabla de rutas y bases de datos (opcional).redshift_tmp_dir
: directorio provisional de Amazon Redshift que se va a utilizar (opcional).transformation_ctx
: contexto de transformación que se va a utilizar (opcional).
Ejemplo de write_dynamic_frame
En este ejemplo se escribe la salida localmente mediante un connection_type
de S3 con un argumento de ruta POSIX en connection_options
, que permite escribir en almacenamiento local.
glueContext.write_dynamic_frame.from_options(\ frame = dyf_splitFields,\ connection_options = {'path': '/home/glue/GlueLocalOutput/'},\ connection_type = 's3',\ format = 'json')