Uso de archivos en Amazon S3 para el origen de datos - AWS Glue

Uso de archivos en Amazon S3 para el origen de datos

Si elige Amazon S3 como origen de datos, puede elegir entre lo siguiente:

  • Una base de datos y una tabla del Catálogo de datos.

  • Un bucket, carpeta o archivo en Amazon S3.

Si utiliza un bucket de Amazon S3 como origen de datos, AWS Glue detecta el esquema de los datos en la ubicación especificada desde uno de los archivos o al utilizar el archivo especificado como archivo de muestra. La detección de esquemas se produce cuando se utiliza el botón Infer schema (Inferir esquema). Si cambia la ubicación de Amazon S3 o el archivo de ejemplo, debe elegir Infer schema (Inferir esquema) una vez más, para realizar la detección de esquemas utilizando la nueva información.

Para configurar un nodo de origen de datos que lea directamente desde archivos en Amazon S3
  1. Vaya al editor visual para acceder a un trabajo nuevo o guardado.

  2. Elija un nodo de origen de datos en el diagrama de trabajo para un origen de Amazon S3.

  3. Elija la pestaña Data source properties (Propiedades de origen de datos) y, a continuación, escriba la información siguiente:

    • S3 source type (Tipo de origen de S3): (solo para orígenes de datos de Amazon S3) elija la opción S3 location (Ubicación de S3).

    • S3 URL (URL de S3): ingrese la ruta de acceso al bucket, carpeta o archivo de Amazon S3 que contiene los datos de su trabajo. Puede elegir Browse S3 (Examinar S3) para seleccionar la ruta de acceso entre las ubicaciones disponibles para su cuenta.

    • Recursive (Acción recursiva): elija esta opción si desea que AWS Glue lea datos de archivos en carpetas secundarias en la ubicación de S3.

      Si las carpetas secundarias contienen datos particionados, AWS Glue no agrega ninguna información de partición especificada en los nombres de carpeta al Catálogo de datos. Por ejemplo, considere la siguientes carpetas en Amazon S3:

      S3://sales/year=2019/month=Jan/day=1 S3://sales/year=2019/month=Jan/day=2

      Si elige Recursive (Acción recursiva) y selecciona la carpeta sales como la ubicación de S3, AWS Glue lee los datos en todas las carpetas secundarias, pero no crea particiones por año, mes o día.

    • Data format (Formato de datos): elija el formato en el que se almacenan los datos. Puede elegir JSON, CSV o Parquet. El valor que seleccione indica al trabajo de AWS Glue cómo leer los datos del archivo de origen.

      nota

      Si no selecciona el formato correcto para los datos, AWS Glue puede inferir bien el esquema, pero el trabajo no podrá analizar los datos del archivo de origen en forma correcta.

      Puede introducir opciones de configuración adicionales, en función del formato que elija.

      • JSON (JavaScript Object Notation)

        • JsonPath: ingrese una ruta de JSON que apunte a un objeto que se usa para definir un esquema de tabla. Las expresiones de la ruta JSON siempre hacen referencia a una estructura JSON de la misma manera que la expresión XPath se utiliza en combinación con un documento XML. El “root member object (objeto miembro raíz)” en la ruta JSON siempre se conoce como $, incluso si es un objeto o matriz. La ruta de JSON se puede escribir en la notación de puntos o la notación de corchete.

          Para obtener más información acerca de las rutas JSON, consulte JsonPath en el sitio web GitHub.

        • Records in source files can span multiple lines (Los registros en los archivos de origen pueden abarcar varias líneas): elija esta opción si un solo registro puede abarcar varias líneas en el archivo CSV.

      • CSV (valores separados por comas)

        • Delimiter (Delimitador): escriba un carácter para indicar qué elemento va a separar cada entrada de columna en la fila, por ejemplo, ; o ,.

        • Escape character (Carácter de escape): escriba un carácter que se utilice como carácter de escape. Este carácter indica que el carácter que sigue inmediatamente al carácter de escape debe tomarse en forma literal y no debe interpretarse como un delimitador.

        • Quote characters (Caracteres de cita): ingrese el carácter que se utiliza para agrupar cadenas separadas en un solo valor. Por ejemplo, debería elegir Double quote (") [Comilla doble (“)] si tiene valores como "This is a single value" en su archivo CSV.

        • Records in source files can span multiple lines (Los registros en los archivos de origen pueden abarcar varias líneas): elija esta opción si un solo registro puede abarcar varias líneas en el archivo CSV.

        • First line of source file contains column headers (La primera línea del archivo de origen contiene encabezados de columna): elija esta opción si la primera fila del archivo CSV contiene encabezados de columna en lugar de datos.

      • Parquet (almacenamiento en columna de Apache Parquet)

        No hay ajustes adicionales que configurar para los datos almacenados en formato Parquet.

    • Partition predicate (Predicado de partición): para particionar los datos que se leen desde el origen de datos, ingrese una expresión booleana basada en Spark SQL que incluya sólo las columnas de partición. Por ejemplo: "(year=='2020' and month=='04')".

    • Advanced options (Opciones avanzadas): expanda esta sección si desea que AWS Glue detecte el esquema de los datos en función de un archivo específico.

      • Schema inference (Inferencia de esquema): elija la opción Choose a sample file from S3 (Elegir un archivo de ejemplo desde S3) si desea utilizar un archivo específico en lugar de permitir que AWS Glue elija un archivo.

      • Auto-sampled file (Archivo de ejemplo automático): ingrese la ruta de acceso al archivo en Amazon S3 que se utilizará para inferir el esquema.

      Si está editando un nodo de origen de datos y cambia el archivo de ejemplo seleccionado, elija Reload schema (Volver a cargar esquema) para detectar el esquema mediante el nuevo archivo de ejemplo.

  4. Elija el botón Infer schema (Inferir esquema) para detectar el esquema a partir de los archivos de origen en Amazon S3. Si cambia la ubicación de Amazon S3 o el archivo de ejemplo, debe elegir Infer schema (Inferir esquema) una vez más, para inferir el esquema con la nueva información.