Creación de conectores personalizados - AWS Glue

Creación de conectores personalizados

También puede crear su propio conector y después cargar el código en AWS Glue Studio.

Los conectores personalizados están integrados en AWS Glue Studio a través de la API de tiempo de ejecución de AWS Glue Spark. El tiempo de ejecución de AWS Glue Spark le permite conectar cualquier conector que cumpla con la interfaz de Spark, Athena o JDBC. Le permite transferir cualquier opción de conexión que esté disponible con el conector personalizado.

Puede encapsular todas sus propiedades de conexión con Conexiones de AWS Glue y proporcionar el nombre de la conexión para su trabajo de ETL. La integración con las conexiones del Catálogo de datos le permite utilizar las mismas propiedades de conexión en varias llamadas en una sola aplicación Spark o entre diferentes aplicaciones.

Puede especificar opciones adicionales para la conexión. El script de trabajo que genera AWS Glue Studio contiene una entrada de Datasource que utiliza la conexión para conectar el conector con las opciones especificadas. Por ejemplo:

Datasource = glueContext.create_dynamic_frame.from_options(connection_type = "custom.jdbc", connection_options = {"dbTable":"Account","connectionName":"my-custom-jdbc- connection"}, transformation_ctx = "DataSource0")
Para agregar un conector personalizado a AWS Glue Studio
  1. Cree el código para su conector personalizado. Para obtener más información, consulte Desarrollo de conectores personalizados.

  2. Agregue soporte para características de AWS Glue a su conector. Aquí hay algunos ejemplos de estas características y cómo se utilizan dentro del script de trabajo generado por AWS Glue Studio:

    • Mapeo de tipos de datos: el conector puede convertir el tipo de las columnas mientras las lee desde el almacén de datos subyacente. Por ejemplo, un dataTypeMapping de {"INTEGER":"STRING"} convierte todas las columnas de tipo Integer a columnas de tipo String al analizar los registros y construir el archivo DynamicFrame. Esto ayuda a los usuarios a convertir columnas en los tipos de su elección.

      DataSource0 = glueContext.create_dynamic_frame.from_options(connection_type = "custom.jdbc", connection_options = {"dataTypeMapping":{"INTEGER":"STRING"}", connectionName":"test-connection-jdbc"}, transformation_ctx = "DataSource0")
    • Partición para lecturas paralelas: AWS Glue permite leer datos paralelos desde el almacén de datos particionando los datos en una columna. Debe especificar la columna de partición, el límite inferior de partición, el límite superior de partición y el número de particiones. Esta función le permite hacer uso del paralelismo de datos y de varios ejecutores Spark asignados para la aplicación Spark.

      DataSource0 = glueContext.create_dynamic_frame.from_options(connection_type = "custom.jdbc", connection_options = {"upperBound":"200","numPartitions":"4", "partitionColumn":"id","lowerBound":"0","connectionName":"test-connection-jdbc"}, transformation_ctx = "DataSource0")
    • Usar AWS Secrets Manager para almacenar credenciales: la conexión del Catálogo de datos también puede contener un secretId para un secreto almacenado en AWS Secrets Manager. El secreto de AWS puede almacenar de forma segura la información de autenticación y credenciales y proporcionársela a AWS Glue en tiempo de ejecución. También puede especificar el secretId del script de Spark de la siguiente manera:

      DataSource = glueContext.create_dynamic_frame.from_options(connection_type = "custom.jdbc", connection_options = {"connectionName":"test-connection-jdbc", "secretId"-> "my-secret-id"}, transformation_ctx = "DataSource0")
    • Filtrar los datos de origen con predicados de fila y proyecciones de columna: el tiempo de ejecución de AWS Glue Spark también permite a los usuarios insertar consultas SQL para filtrar datos en el origen con predicados de fila y proyecciones de columna. Esto permite que su trabajo de ETL cargue datos filtrados más rápidamente desde los almacenes de datos que admiten inserciones. Un ejemplo de consulta SQL insertada a un origen de datos JDBC es: SELECT id, name, department FROM department WHERE id < 200.

      DataSource = glueContext.create_dynamic_frame.from_options(connection_type = "custom.jdbc", connection_options = {"query":"SELECT id, name, department FROM department WHERE id < 200","connectionName":"test-connection-jdbc"}, transformation_ctx = "DataSource0")
    • Marcadores de trabajo: AWS Glue admite la carga progresiva de datos de orígenes JDBC. AWS Glue realiza un seguimiento del último registro procesado del almacén de datos y procesa nuevos registros de datos en las siguientes ejecuciones de trabajos de ETL. Los marcadores de trabajo utilizan la clave principal como columna predeterminada para la clave de marcador, siempre que esta columna aumente o disminuya en forma secuencial. Para obtener más información acerca de los marcadores de trabajo, consulte Marcadores de trabajo en la Guía para desarrolladores de AWS Glue.

      DataSource0 = glueContext.create_dynamic_frame.from_options(connection_type = "custom.jdbc", connection_options = {"jobBookmarkKeys":["empno"], "jobBookmarkKeysSortOrder" :"asc", "connectionName":"test-connection-jdbc"}, transformation_ctx = "DataSource0")
  3. Empaquete el conector personalizado como un archivo JAR y cárguelo a Amazon S3.

  4. Pruebe su conector personalizado. Para obtener más información, consulte las instrucciones en GitHub en Conectores personalizados de Glue: guía de pruebas de validación local.

  5. En la consola de AWS Glue Studio, elija Connectors (Conectores) en el panel de navegación de la consola.

  6. En la página Connectors (Conectores), seleccione Create custom connector (Crear conector personalizado).

  7. En la página Create custom connector (Crear conector personalizado), ingrese la siguiente información:

    • La ruta a la ubicación del archivo JAR de código personalizado en Amazon S3.

    • Un nombre para el conector que utilizará AWS Glue Studio.

    • El tipo de conector, que puede ser JDBC, Spark o Athena.

    • El nombre del punto de entrada dentro del código personalizado que AWS Glue Studio invoca para utilizar el conector.

      • Para los conectores JDBC, este campo debe ser el nombre de clase del controlador JDBC.

      • En el caso de los conectores Spark, este campo debe ser el nombre de clase del origen de datos completo, o su alias, que se utiliza al cargar el origen de datos Spark con el operador de format.

    • (Sólo JDBC) la dirección URL base utilizada por la conexión JDBC para el almacén de datos.

    • (Opcional) descripción del conector personalizado.

  8. Elija Create connector (Crear conector).

  9. Desde la página Connectors (Conectores), cree una conexión que utilice este conector, tal y como se describe en Creación de conexiones para conectores.

Agregar conectores a AWS Glue Studio

Un conector es un fragmento de código que facilita la comunicación entre el almacén de datos y AWS Glue. Puede suscribirse a un conector ofrecido en AWS Marketplace o puede crear su propio conector personalizado.

Suscripción a conectores de AWS Marketplace

AWS Glue Studio facilita el agregado de conectores desde AWS Marketplace.

Para agregar un conector de AWS Marketplace a AWS Glue Studio
  1. En la consola de AWS Glue Studio, elija Connectors (Conectores) en el panel de navegación de la consola.

  2. En la página Connectors (Conectores), elija Go to AWS Marketplace (Ir a MKT).

  3. En AWS Marketplace, Featured products (Productos destacados) elija el conector que desea usar. Puede elegir uno de los conectores destacados o utilizar la búsqueda. Puede buscar el nombre o el tipo de conector, y puede utilizar opciones para refinar los resultados de búsqueda.

    Si desea utilizar uno de los conectores destacados, elija View product (Ver producto). Si utilizó la búsqueda para localizar un conector, elija el nombre del conector.

  4. En la página de producto del conector, utilice las pestañas para ver información sobre el conector. Si decide comprar este conector, elija Continue to Subscribe (Continuar con la suscripción).

  5. Proporcione la información de pago y, a continuación, elija Continue to Configure (Continuar con la configuración).

  6. En la página Configure this software (Configurar este software), elija el método de implementación y la versión del conector que se va a utilizar. A continuación, elija Continue to Launch (Continuar con el lanzamiento).

  7. En la página Launch this software (Lanzar este software), puede revisar las Usage Instructions (Instrucciones de uso) proporcionada por el proveedor del conector. Cuando esté listo para continuar, elija Activate connection in AWS Glue Studio (Activar conexión en AWS Glue Studio).

    Después de cierto tiempo, la consola muestra la página Create marketplace connection (Crear conexión de marketplace) en AWS Glue Studio.

  8. Cree una conexión que utilice este conector, tal y como se describe en Creación de conexiones para conectores.

    También puede elegir Activate connector only (Activar sólo el conector) para omitir la creación de una conexión en este momento. Debe crear una conexión en una fecha posterior antes de poder usar el conector.