El complemento de fuente por lotes de Cloud Storage te permite leer datos de segmentos de Cloud Storage e incorporarlos a Cloud Data Fusion para procesarlos y transformarlos. Te permite cargar datos de varios formatos de archivo, incluidos los siguientes:
- Estructurados: CSV, Avro, Parquet y ORC
- Semiestructurados: JSON y XML
- Otros: texto, binario
Antes de empezar
Cloud Data Fusion suele tener dos cuentas de servicio:
- Cuenta de servicio en tiempo de diseño: agente de servicio de la API de Cloud Data Fusion
- Cuenta de servicio en tiempo de ejecución: Cuenta de servicio de Compute Engine
Antes de usar el complemento de origen por lotes de Cloud Storage, asigna el siguiente rol o permisos a cada cuenta de servicio.
Agente de servicio de la API de Cloud Data Fusion
Esta cuenta de servicio ya tiene todos los permisos necesarios, por lo que no tienes que añadir más.
Cuenta de servicio de Compute Engine
En tu Google Cloud proyecto, asigna los siguientes roles o permisos de IAM a la cuenta de servicio de Compute Engine:
- Lector de segmentos heredados de Storage (
roles/storage.legacyBucketReader
). Este rol predefinido contiene el permisostorage.buckets.get
necesario. Lector de objetos de Storage (
roles/storage.legacyBucketReader
). Este rol predefinido contiene los siguientes permisos obligatorios:storage.objects.get
storage.objects.list
Configurar el complemento
- Ve a la interfaz web de Cloud Data Fusion y haz clic en Studio.
- Comprueba que esté seleccionada la opción Flujo de procesamiento de datos - Lote (no En tiempo real).
- En el menú Fuente, haga clic en GCS. El nodo de Cloud Storage aparece en la canalización.
- Para configurar la fuente, vaya al nodo Cloud Storage y haga clic en Propiedades.
Introduce las siguientes propiedades. Para ver una lista completa, consulta Propiedades.
- Introduce una etiqueta para el nodo de Cloud Storage. Por ejemplo,
Cloud Storage tables
. Introduce los detalles de la conexión. Puedes configurar una conexión nueva y puntual o una conexión reutilizable que ya tengas.
Nueva conexión
Para añadir una conexión única a Cloud Storage, sigue estos pasos:
- Mantén desactivada la opción Usar conexión.
- En el campo ID de proyecto, deja el valor de detección automática.
En el campo Tipo de cuenta de servicio, deja el valor Ruta de archivo y el campo Ruta de archivo de cuenta de servicio como detección automática.
Conexión reutilizable
Para reutilizar una conexión, sigue estos pasos:
- Activa Usar conexión.
- Haz clic en Ver conexiones.
Haz clic en el nombre de la conexión (por ejemplo, Cloud Storage Default).
.Opcional: Si no hay ninguna conexión y quieres crear una nueva que se pueda reutilizar, haz clic en Añadir conexión y sigue los pasos de la pestaña Nueva conexión de esta página.
En el campo Nombre de referencia, introduce un nombre que se usará para el linaje (por ejemplo,
data-fusion-gcs-campaign
).En el campo Ruta, introduzca la ruta de lectura. Por ejemplo,
gs://BUCKET_PATH
.En el campo Formato, selecciona uno de los siguientes formatos de archivo para los datos que se van a leer:
- avro
- blob (el formato blob requiere un esquema que contenga un campo llamado "body" de tipo bytes)
- csv
- delimitado
- json
- parquet
- text (el formato de texto requiere un esquema que contenga un campo llamado "body" de tipo string)
- tsv
- El nombre de cualquier complemento de formato que hayas implementado en tu entorno
Opcional: Para probar la conectividad, haga clic en Obtener el esquema.
Opcional: en el campo Tamaño de la muestra, introduce el número máximo de filas que quieres comprobar del tipo de datos seleccionado (por ejemplo,
1000
).Opcional: En el campo Anular, introduzca los nombres de las columnas y sus tipos de datos correspondientes para omitirlos.
Opcional: Introduzca Propiedades avanzadas, como un tamaño mínimo de división o un filtro de ruta de expresión regular (consulte Propiedades).
Opcional: En el campo Nombre del segmento temporal, introduce un nombre para el segmento de Cloud Storage.
- Introduce una etiqueta para el nodo de Cloud Storage. Por ejemplo,
Opcional: haz clic en Validar y corrige los errores que se hayan encontrado.
Haz clic en Cerrar. Las propiedades se guardan y puedes seguir creando tu flujo de datos en Cloud Data Fusion Studio.
Propiedades
Propiedad | Compatible con macros | Propiedad obligatoria | Descripción |
---|---|---|---|
Etiqueta | No | Sí | El nombre del nodo de su canalización de datos. |
Usar conexión | No | No | Busca una conexión reutilizable a la fuente. Para obtener más información sobre cómo añadir, importar y editar las conexiones que aparecen al buscar conexiones, consulta Gestionar conexiones. |
Conexión | Sí | Sí | Si la opción Usar conexión está activada, en este campo se muestra el nombre de la conexión reutilizable que selecciones. |
ID del proyecto | Sí | No | Se usa solo cuando la opción Usar conexión está desactivada. Es un identificador único global del proyecto. El valor predeterminado es auto-detect . |
Tipo de cuenta de servicio | Sí | No | Selecciona una de las siguientes opciones:
|
Service account file path (Ruta del archivo de la cuenta de servicio) | Sí | No | Solo se usa cuando el valor de Service account type (Tipo de cuenta de servicio) es File path (Ruta de archivo). Ruta del archivo de clave de la cuenta de servicio en el sistema de archivos local que se usa para la autorización. Si los trabajos se ejecutan en clústeres de Dataproc, defina el valor como detección automática. Si las tareas se ejecutan en otros tipos de clústeres, el archivo debe estar presente en todos los nodos del clúster. El valor predeterminado es auto-detect . |
JSON de la cuenta de servicio | Sí | No | Solo se usa cuando el valor de Tipo de cuenta de servicio es JSON. El contenido del archivo JSON de la cuenta de servicio. |
Nombre de referencia | No | Sí | Nombre que identifica de forma única esta fuente para otros servicios, como el linaje y la anotación de metadatos. |
Ruta | Sí | Sí | Ruta a los archivos que se van a leer. Si se especifica un directorio, termina la ruta con una barra inversa (/ ). Por ejemplo, gs://bucket/path/to/directory/ . Para buscar un patrón de nombre de archivo, puedes usar un asterisco (* ) como comodín. Si no se encuentra ningún archivo o no hay ninguna coincidencia, la canalización falla. |
Formato | No | Sí | Formato de los datos que se van a leer. El formato debe ser uno de los siguientes:
|
Tamaño de la muestra | Sí | No | Número máximo de filas que se investigan para detectar automáticamente el tipo de datos. El valor predeterminado es 1000. |
Anular | Sí | No | Lista de columnas con los datos correspondientes de los que se omite la detección automática del tipo de datos. |
Delimitador | Sí | No | Delimitador que se usa cuando el formato es delimitado. Esta propiedad se ignora en otros formatos. |
Habilitar valores entre comillas | Sí | No | Indica si el contenido entre comillas se debe tratar como un valor. Esta propiedad solo se usa en los formatos CSV, TSV o delimitado. Por ejemplo, si se asigna el valor true a esta propiedad, se mostrarán los dos campos siguientes: 1, "a, b, c" .
El primer campo tiene el valor 1 . El segundo tiene
a, b, c . Se recortan los caracteres de comillas. El delimitador de salto de línea no puede estar entre comillas.El complemento da por hecho que las comillas están bien colocadas. Por ejemplo, "a, b, c" . Si no se cierra una comilla ("a,b,c, ), se produce un error.El valor predeterminado es False. |
Usar la primera fila como encabezado | Sí | No | Indica si se debe usar la primera línea de cada archivo como encabezado de columna. Los formatos admitidos son texto, CSV,
TSV y delimitado. El valor predeterminado es False. |
Tamaño mínimo de división | Sí | No | Tamaño mínimo, en bytes, de 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 | Sí | No | Tamaño máximo, en bytes, de 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 | Sí | No | Expresión regular con la que deben coincidir las rutas de los archivos para incluirse en la entrada. Se compara la ruta completa, no solo el nombre del archivo. Si no se proporciona ningún archivo, no se aplicará ningún filtro. Para obtener más información sobre la sintaxis de las expresiones regulares, consulta Patrón. |
Campo de ruta | Sí | No | Campo de salida en el que se colocará la ruta del archivo del que se ha leído el registro. Si no se especifica, la ruta no se incluye en los registros de salida. Si se especifica, el campo debe existir en el esquema de salida como una cadena. |
Solo nombre de archivo de la ruta | Sí | No | Si se ha definido una propiedad Path field, usa solo el nombre de archivo y no el URI de la ruta. El valor predeterminado es False. |
Leer archivos de forma recursiva | Sí | No | Indica si los archivos se deben leer de forma recursiva desde la ruta. El valor predeterminado es False. |
Permitir entradas vacías | Sí | No | Indica si se permite una ruta de entrada que no contenga datos. Si se le asigna el valor False, el complemento mostrará un error cuando no haya datos que leer. Si se le asigna el valor True, no se produce ningún error y se leen cero registros. El valor predeterminado es False. |
Archivo de datos cifrado | Sí | No | Indica si los archivos están cifrados. Para obtener más información, consulta Cifrado de archivos de datos. El valor predeterminado es False. |
Sufijo del archivo de metadatos de cifrado | Sí | No | Sufijo del nombre de archivo del archivo de metadatos de cifrado. El valor predeterminado es metadata. |
Propiedades del sistema de archivos | Sí | No | Propiedades adicionales que se van a usar con InputFormat al leer los datos. |
Codificación de archivos | Sí | No | La codificación de caracteres de los archivos que se van a leer. El valor predeterminado es UTF-8. |
Esquema de salida | Sí | No | Si se define una propiedad Path field, debe estar presente en el esquema como una cadena. |
Cifrado de archivos de datos
En esta sección se describe la propiedad Cifrado de archivos de datos. Si le asignas el valor true, los archivos se descifran
con el Streaming AEAD proporcionado por la
biblioteca Tink. Cada archivo de datos
debe ir acompañado de un archivo de metadatos que contenga la información de cifrado. Por ejemplo, un archivo de datos cifrado 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 cifrar la clave de cifrado de datos. |
aad |
Datos autenticados adicionales codificados en Base64 que se usan en el cifrado. |
key set |
Un objeto JSON que representa la información del conjunto de claves serializado de la biblioteca 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
Siguientes pasos
- Consulta más información sobre los complementos de Cloud Data Fusion.