Clase DynamicFrameWriter - AWS Glue

Clase DynamicFrameWriter

 Métodos

__init__

__init__(glue_context)

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: el DynamicFrame que se va a escribir.

  • connection_type: el tipo de conexión. Entre los valores válidos se incluyen: s3, mysql, postgresql, redshift, sqlserver y oracle.

  • connection_options: opciones de conexión, como la tabla de rutas y bases de datos (opcional). Para un connection_type de s3, 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.

    connection_options = {"url": "jdbc-url/database", "user": "username", "password": "password","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, especifique schema.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.

  • 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 para las entradas y salidas de ETL en AWS Glue los formatos que se admiten.

  • format_options: opciones del formato especificado. Consulte en Opciones de formato para las entradas y salidas de ETL en AWS Glue 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: el DynamicFrame que se va a escribir.

  • name_space: la base de datos que se va a utilizar.

  • table_name: el table_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 en true (el valor predeterminado), AWS Glue llama automáticamente a la API DeleteObjectsOnCancel 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: el DynamicFrame 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')