Fuente por lotes de Cloud Storage

En esta página, se proporcionan instrucciones para configurar el complemento de origen por lotes de Cloud Storage en Cloud Data Fusion.

El complemento de fuente por lotes de Cloud Storage te permite leer datos de los buckets de Cloud Storage y llevarlos a Cloud Data Fusion para su procesamiento y transformación posteriores. Te permite cargar datos de varios formatos de archivo, incluidos los siguientes:

  • Estructurados: CSV, Avro, Parquet y ORC
  • Semiestructurados: JSON, XML
  • Otros: Texto, binario

Antes de comenzar

Por lo general, Cloud Data Fusion tiene dos cuentas de servicio:

Antes de usar el complemento de fuente por lotes de Cloud Storage, otorga el rol o los permisos siguientes a cada cuenta de servicio.

Agente de servicios de la API de Cloud Data Fusion

Esta cuenta de servicio ya tiene todos los permisos necesarios y no necesitas agregar permisos adicionales.

Cuenta de servicio de Compute Engine

En tu Google Cloud proyecto, otorga los siguientes roles o permisos de IAM a la cuenta de servicio de Compute Engine:

Configura el complemento

  1. Ve a la interfaz web de Cloud Data Fusion y haz clic en Studio.
  2. Verifica que esté seleccionada la opción Data Pipeline - Batch (no Realtime).
  3. En el menú Source, haz clic en GCS. El nodo de Cloud Storage aparecerá en tu canalización.
  4. Para configurar la fuente, ve al nodo de Cloud Storage y haz clic en Properties.
  5. Ingresa las siguientes propiedades. Para obtener una lista completa, consulta Propiedades.

    1. Ingresa una Etiqueta para el nodo de Cloud Storage, por ejemplo, Cloud Storage tables.
    2. Ingresa los detalles de la conexión. Puedes configurar una conexión nueva y única, o una conexión existente y reutilizable.

      Nueva conexión

      Para agregar una conexión única a Cloud Storage, sigue estos pasos:

      1. Mantén desactivada la opción Usar conexión.
      2. En el campo Project ID, deja el valor como detección automática.
      3. En el campo Tipo de cuenta de servicio, deja el valor como Ruta de acceso al archivo y la Ruta de acceso al archivo de la cuenta de servicio como detección automática.

      Conexión reutilizable

      Para volver a usar una conexión existente, sigue estos pasos:

      1. Activa Usar conexión.
      2. Haz clic en Browse connections.
      3. Haz clic en el nombre de la conexión, por ejemplo, Predeterminada de Cloud Storage.

      4. Opcional: Si no existe una conexión y deseas crear una nueva conexión reutilizable, haz clic en Agregar conexión y consulta los pasos de la pestaña Nueva conexión en esta página.

    3. En el campo Reference name, ingresa un nombre para usar en el linaje, por ejemplo, data-fusion-gcs-campaign.

    4. En el campo Ruta de acceso, ingresa la ruta de acceso desde la que se leerá, por ejemplo, gs://BUCKET_PATH.

    5. En el campo Formato, selecciona uno de los siguientes formatos de archivo para los datos que se leen:

      • avro
      • blob (el formato de blob requiere un esquema que contenga un campo llamado cuerpo de tipo bytes)
      • csv
      • delimitado
      • json
      • parquet
      • text (el formato de texto requiere un esquema que contenga un campo llamado cuerpo de tipo cadena)
      • tsv
      • El nombre de cualquier complemento de formato que hayas implementado en tu entorno
    6. Opcional: Para probar la conectividad, haz clic en Obtener esquema.

    7. Opcional: En el campo Tamaño de muestra, ingresa la cantidad máxima de filas para verificar el tipo de datos seleccionado, por ejemplo, 1000.

    8. Opcional: En el campo Override, ingresa los nombres de las columnas y sus correspondientes tipos de datos para omitir.

    9. Opcional: Ingresa propiedades avanzadas, como un tamaño de división mínimo o un filtro de ruta de expresión regular (consulta Propiedades).

    10. De manera opcional, en el campo Nombre del bucket temporal, ingresa un nombre para el bucket de Cloud Storage.

  6. Opcional: Haz clic en Validar y corrige los errores que se encuentren.

  7. Haz clic en Cerrar. Las propiedades se guardan y puedes seguir compilando tu canalización de datos en Cloud Data Fusion Studio.

Propiedades

Propiedad Macro habilitada Propiedad obligatoria Descripción
Etiqueta No Es el nombre del nodo en tu canalización de datos.
Cómo usar la conexión No No Busca una conexión reutilizable a la fuente. Para obtener más información sobre cómo agregar, importar y editar las conexiones que aparecen cuando exploras conexiones, consulta Administra conexiones.
Conexión Si la opción Usar conexión está activada, el nombre de la conexión reutilizable que selecciones aparecerá en este campo.
ID del proyecto No Se usa solo cuando la opción Usar conexión está desactivada. Es un identificador único a nivel global para el proyecto.
El valor predeterminado es auto-detect.
Tipo de cuenta de servicio No Selecciona una de las siguientes opciones:
  • Ruta de acceso al archivo: Es la ruta en la que se encuentra la cuenta de servicio.
  • JSON: contenido JSON de la cuenta de servicio.
Ruta de acceso al archivo de la cuenta de servicio No Se usa solo cuando el valor del tipo de cuenta de servicio es Ruta de acceso al archivo. Es la ruta de acceso del sistema de archivos local de la clave de la cuenta de servicio que se usa para la autorización. Si los trabajos se ejecutan en clústeres de Dataproc, configura el valor para que se detecte automáticamente. Si las tareas se ejecutan en otros tipos de clústeres, el archivo debe estar presente en cada nodo del clúster.
El valor predeterminado es auto-detect.
JSON de la cuenta de servicio No Se usa solo cuando el valor del tipo de cuenta de servicio es JSON. Es el contenido del archivo JSON de la cuenta de servicio.
Nombre de referencia No Es el nombre que identifica de forma única esta fuente para otros servicios, como el linaje y la anotación de metadatos.
Ruta de acceso Es la ruta de acceso a los archivos que se leerán. Si se especifica un directorio, finaliza la ruta de acceso con una barra invertida (/). Por ejemplo, gs://bucket/path/to/directory/. Para hacer coincidir un patrón de nombre de archivo, puedes usar un asterisco (*) como comodín. Si no se encuentran archivos o no coinciden, la canalización fallará.
Formato No Es el formato de los datos que se leerán. El formato debe ser uno de los siguientes:
  • avro
  • blob (el formato de blob requiere un esquema que contenga un campo llamado cuerpo de tipo bytes)
  • csv
  • delimitado
  • json
  • parquet
  • text (el formato de texto requiere un esquema que contenga un campo llamado cuerpo de tipo cadena)
  • tsv
  • El nombre de cualquier complemento de formato que hayas implementado en tu entorno
  • Si el formato es una macro, solo se pueden usar los formatos empaquetados previamente.
Tamaño de la muestra No Es la cantidad máxima de filas que se investigan para la detección automática de tipos de datos. El valor predeterminado es 1000.
Anula No Es una lista de columnas con los datos correspondientes a partir de los cuales se omite la detección automática de tipos de datos.
Delimitador No Es el delimitador que se usa cuando el formato está delimitado. Esta propiedad se ignora para otros formatos.
Habilita los valores entre comillas No Indica si se debe tratar el contenido entre comillas como un valor. Esta propiedad solo se usa para los formatos csv, tsv o delimitado. Por ejemplo, si esta propiedad se establece como verdadera, el siguiente comando muestra dos campos: 1, "a, b, c". El primer campo tiene 1 como valor. El segundo tiene a, b, c. Se recortan los caracteres de comillas. El delimitador de línea nueva no puede estar entre comillas.
El complemento supone que las comillas están encerradas correctamente, por ejemplo, "a, b, c". Si no cierras una comilla ("a,b,c,), se produce un error.
El valor predeterminado es falso.
Use first row as header No Indica si se debe usar la primera línea de cada archivo como el encabezado de la columna. Los formatos admitidos son texto, csv, tsv y delimitado.
El valor predeterminado es False.
Tamaño de división mínimo No Es el tamaño mínimo, en bytes, para cada partición de entrada. Las particiones más pequeñas aumentan el nivel de paralelismo, pero requieren más recursos y sobrecarga.
Si el valor de Formato es blob, no puedes dividir los datos.
Tamaño máximo de división No Es el tamaño máximo, en bytes, para cada partición de entrada. Las particiones más pequeñas aumentan el nivel de paralelismo, pero requieren más recursos y sobrecarga.
Si el valor de Formato es blob, no puedes dividir los datos.
El valor predeterminado es 128 MB.
Filtro de ruta de expresión regular No Es una expresión regular que las rutas de acceso de los archivos deben coincidir para incluirse en la entrada. Se compara la ruta de acceso completa, no solo el nombre del archivo. Si no se proporciona ningún archivo, no se filtran los archivos. Para obtener más información sobre la sintaxis de la expresión regular, consulta Patrón.
Campo de ruta de acceso No Es un campo de salida para colocar la ruta de acceso del archivo del que se leyó el registro. Si no se especifica, la ruta de acceso no se incluye en los registros de salida. Si se especifica, el campo debe existir en el esquema de salida como una cadena.
Solo el nombre de la ruta de acceso No Si se establece una propiedad Path field, usa solo el nombre del archivo y no el URI de la ruta.
El valor predeterminado es False.
Cómo leer archivos de forma recursiva No Indica si los archivos se deben leer de forma recursiva desde la ruta de acceso.
El valor predeterminado es False.
Permitir una entrada vacía No Indica si se permite una ruta de entrada que no contenga datos. Si se establece como False, el complemento mostrará un error cuando no haya datos para leer. Cuando se establece en True, no se genera ningún error y no se leen registros.
El valor predeterminado es False.
Archivo de datos encriptado No Si los archivos están encriptados Para obtener más información, consulta Encriptación de archivos de datos.
El valor predeterminado es False.
Sufijo del archivo de metadatos de encriptación No Es el sufijo del nombre de archivo del archivo de metadatos de encriptación.
El valor predeterminado es metadata.
Propiedades del sistema de archivos No Son propiedades adicionales que se usan con InputFormat cuando se leen los datos.
Codificación de archivos No Es la codificación de caracteres de los archivos que se leerán.
El valor predeterminado es UTF-8.
Esquema de salida No Si se establece una propiedad Path field, debe estar presente en el esquema como una cadena.

Encriptación de archivos de datos

En esta sección, se describe la propiedad Encriptación de archivos de datos. Si lo estableces en true, los archivos se desencriptan con el AEAD de transmisión que proporciona la biblioteca de Tink. Cada archivo de datos debe ir acompañado de un archivo de metadatos que contenga la información del algoritmo de cifrado. Por ejemplo, un archivo de datos encriptado en gs://BUCKET/PATH_TO_DIRECTORY/file1.csv.enc debe tener un archivo de metadatos en gs://BUCKET/ PATH_TO_DIRECTORY/file1.csv.enc.metadata. El archivo de metadatos contiene un objeto JSON con las siguientes propiedades:

Propiedad Descripción
kms El URI de Cloud Key Management Service que se usó para encriptar la clave de encriptación de datos
aad Los datos autenticados adicionales codificados en Base64 que se usan en la encriptación
key set Es un objeto JSON que representa la información del conjunto de claves serializado de la biblioteca de Tink.

Ejemplo

    /* Counting example */
    {

      "kms": "gcp-kms://projects/my-key-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/mykey",

      "aad": "73iT4SUJBM24umXecCCf3A==",

      "keyset": {

          "keysetInfo": {

              "primaryKeyId": 602257784,

              "keyInfo": [{

                  "typeUrl": "type.googleapis.com/google.crypto.tink.AesGcmHkdfStreamingKey",

                  "outputPrefixType": "RAW",

                  "keyId": 602257784,

                  "status": "ENABLED"

              }]

          },

          "encryptedKeyset": "CiQAz5HH+nUA0Zuqnz4LCnBEVTHS72s/zwjpcnAMIPGpW6kxLggSrAEAcJKHmXeg8kfJ3GD4GuFeWDZzgGn3tfolk6Yf5d7rxKxDEChIMWJWGhWlDHbBW5B9HqWfKx2nQWSC+zjM8FLefVtPYrdJ8n6Eg8ksAnSyXmhN5LoIj6az3XBugtXvCCotQHrBuyoDY+j5ZH9J4tm/bzrLEjCdWAc+oAlhsUAV77jZhowJr6EBiyVuRVfcwLwiscWkQ9J7jjHc7ih9HKfnqAZmQ6iWP36OMrEn"

      }

    }
    

Notas de la versión

¿Qué sigue?