Transfiere datos por lotes

Si bien la forma principal de transferir datos a Manufacturing Data Engine (MDE) es mediante la transmisión a través de Manufacturing Connect edge (MCe) o el envío de mensajes a Pub/Sub, también es posible transferir archivos por lotes. Esto puede ser útil para volver a procesar datos o importar datos de sistemas externos.

La carga por lotes funciona mediante la creación de un IngestionSpecification con la interfaz web o la API y, luego, la carga de uno o más archivos en una carpeta de un bucket de Cloud Storage configurado por MDE, que, de forma predeterminada, tiene el nombre <project-id>-batch-ingestion. Cuando se sube un archivo nuevo a este bucket, el trabajo de Dataflow del lector de Cloud Storage lo detectará, lo dividirá en cada mensaje individual y enviará cada uno al tema de Pub/Sub input-messages.

Formatos admitidos

La carga por lotes admite los siguientes formatos de datos:

  • JSON: Delimitado por saltos de línea. Cada línea se enviará como un mensaje nuevo.
  • CSV: Con o sin encabezados (se pueden definir), admite la omisión de filas y diferentes separadores. El mensaje se convierte a JSON con cada columna de encabezado como clave y la columna de fila correspondiente como valor.
  • AVRO: Asigna cada fila de AVRO a JSON.
  • AVRO_RAW_WRITER: Lee los mensajes sin procesar que escribió el escritor de Cloud Storage y vuelve a escribir cada mensaje conservando el ID del mensaje de Pub/Sub.

Configuración

Para que el lector de Cloud Storage procese archivos, necesita una File Ingestion Specification que defina qué tipo de archivo debe esperar, sus opciones y a qué carpeta se subirá.

Todos los formatos requieren los siguientes parámetros:

  • name: Nombre de la File Ingestion Specification.
  • folderName: Carpeta a la que se subirán los archivos de esta File Ingestion Specification.
  • source: Formato que se usará (JSON/CSV/AVRO/AVRO_RAW_WRITER).

Además, la fuente CSV admite lo siguiente:

  • separator: Separador que se usará (, se usa si no se proporciona ninguno).
  • skip_rows: Indica si se deben omitir filas antes de comenzar a leer el archivo CSV.
  • headers:
    • infer_headers: Indica si la primera fila leída debe inferir los encabezados.
    • headerNames: Proporciona una lista ordenada de nombres de encabezado para usar.
  • insert_metadata: Indica si se deben incluir metadatos relacionados con el archivo transferido (filePath, fileName, ingestionName). Estos se agregan como pares clave-valor adicionales al mensaje enviado.

Configuración de ejemplo

En esta sección, se incluyen algunos parámetros de configuración de ejemplo para la carga por lotes.

Transfiere archivos JSON delimitados por saltos de línea

REST

POST configuration/v1/ingestions

{
  "name": "json-simple",
  "source": "JSON",
  "folderName": "jsonFiles"
}

Console

  1. Accede a la configuración de File Ingestion Specification.
  2. Abre la sección FILE INGESTION en el menú superior de la 'Cloud Management' sección.

    Transferencia de archivos: Enumera las especificaciones de transferencia de archivos

  3. Las File Ingestion Specifications existentes se enumeran en la sección FILE INGESTION . Se pueden modificar, habilitar, inhabilitar o borrar con el ícono 'Actions' que se encuentra al costado de cada especificación de transferencia.

    Transferencia de archivos: Acción disponible en las especificaciones de transferencia

  4. Para crear una File Ingestion Specification nueva, haz clic en 'ADD NEW INGESTION SPECIFICATION'. Aparecerá un nuevo menú lateral a la derecha de la pantalla con todos los parámetros necesarios para definir la nueva File Ingestion Specification:

    Transferencia de archivos: Nueva especificación de transferencia de archivos

  5. Para crear una especificación de transferencia de archivos JSON delimitados por saltos de línea nueva, selecciona JSON en el menú 'Source Type' y proporciona los dos parámetros obligatorios, en este ejemplo:

    • name: Nombre de la File Ingestion Specification.
    • folderName: Carpeta a la que se subirán los archivos de esta File Ingestion Specification.

    Ingesta de archivos: Nueva especificación de ingesta de archivos JSON

  6. Una vez que se completen los parámetros, haz clic en 'CREATE'. Si se creó correctamente la nueva especificación de transferencia de archivos, aparecerá un mensaje de confirmación.

Transfiere archivos AVRO

REST

POST configuration/v1/ingestions

{
  "name": "avro-simple",
  "source": "AVRO",
  "folderName": "avroFiles"
}

Console

  1. Accede a la configuración de File Ingestion Specification.
  2. Abre la sección FILE INGESTION en el menú superior de la 'Cloud Management' sección.

    Transferencia de archivos: Enumera las especificaciones de transferencia de archivos

  3. Las File Ingestion Specifications existentes se enumeran en la sección FILE INGESTION . Se pueden modificar, habilitar, inhabilitar o borrar con el ícono 'Actions' que se encuentra al costado de cada especificación de transferencia.

    Transferencia de archivos: Acción disponible en las especificaciones de transferencia

  4. Para crear una File Ingestion Specification nueva, haz clic en ADD NEW INGESTION SPECIFICATION.

  5. Aparecerá un nuevo menú lateral a la derecha de la pantalla con todos los parámetros necesarios para definir la nueva File Ingestion Specification:

    Transferencia de archivos: Nueva especificación de transferencia de archivos

  6. Para crear una especificación de transferencia de archivos AVRO nueva, selecciona AVRO en el 'Source Type' menú.

  7. Proporciona los dos parámetros obligatorios, en este ejemplo:

    • name: Nombre de la File Ingestion Specification.
    • folderName: Carpeta a la que se subirán los archivos de esta File Ingestion Specification.

    Transferencia de archivos: Nueva especificación de transferencia de archivos AVRO

  8. Una vez que se completen los parámetros, haz clic en 'CREATE'. Si se creó correctamente la nueva especificación de transferencia de archivos, aparecerá un mensaje de confirmación.

Transfiere archivos CSV y deduce los nombres de las columnas de los encabezados

REST

POST configuration/v1/ingestions

{
  "name": "csv-simple",
  "source": "CSV",
  "folderName": "csv-simple",
  "separator": ",",
  "headers": {
    "inferHeaders": true
  }
}

Console

  1. Navega a la interfaz web de Manufacturing Connect.
  2. Accede a la configuración de File Ingestion Specification.
  3. Abre la sección FILE INGESTION en el menú superior de la 'Cloud Management' sección.

    Transferencia de archivos: Enumera las especificaciones de transferencia de archivos

  4. Las File Ingestion Specifications existentes se enumeran en la sección FILE INGESTION . Se pueden modificar, habilitar, inhabilitar o borrar con el ícono 'Actions' que se encuentra al costado de cada especificación de transferencia.

    Transferencia de archivos: Acción disponible en las especificaciones de transferencia

  5. Para crear una File Ingestion Specification nueva, haz clic en ADD NEW INGESTION SPECIFICATION.

  6. Aparecerá un nuevo menú lateral a la derecha de la pantalla con todos los parámetros necesarios para definir la nueva File Ingestion Specification:

    Transferencia de archivos: Nueva especificación de transferencia de archivos

  7. Para crear una File Ingestion Specification nueva, haz clic en el 'ADD NEW INGESTION SPECIFICATION'.

  8. Aparecerá un nuevo menú lateral a la derecha de la pantalla con todos los parámetros necesarios para definir

    File Ingestion Specification:

    Transferencia de archivos: Nueva especificación de transferencia de archivos

  9. Para crear una especificación de transferencia de archivos CSV que deduzcan los nombres de las columnas de los encabezados nueva, selecciona CSV en el menú 'Source Type' y proporciona los siete parámetros obligatorios, en este ejemplo:

    • name: Nombre de la File Ingestion Specification.
    • folderName: Carpeta a la que se subirán los archivos de esta File Ingestion Specification.
    • separator: Separador que se usará (, se usa si no se proporciona ninguno).
    • skip_rows: Indica si se deben omitir filas antes de comenzar a leer el archivo CSV.
    • headers:
    • infer_headers: Indica si la primera fila leída debe inferir los encabezados. Selecciona 'YES' para deducir los nombres de las columnas de los encabezados.
    • insert_metadata: Indica si se deben incluir metadatos relacionados con el archivo transferido (filePath, fileName, ingestionName).

    Ingesta de archivos: Nueva especificación de ingesta de archivos CSV

  10. Una vez que se completen los parámetros, haz clic en 'CREATE'.

  11. Si se creó correctamente la nueva especificación de transferencia de archivos, aparecerá un mensaje de confirmación.

Transfiere archivos CSV, proporciona nombres de columnas y agrega metadatos de transferencia

REST

POST configuration/v1/ingestions

{
  "name": "csv-headers-metadata",
  "source": "CSV",
  "folderName": "csv-headers",
  "separator": ",",
  "insertMetadata": true,
  "headers": {
    "headerNames": {
      "names": ["one", "two", "three"]
    }
  }
}

Console

  1. Accede a la configuración de File Ingestion Specification.
  2. Abre la sección FILE INGESTION en el menú superior de la 'Cloud Management' sección.

    Transferencia de archivos: Enumera las especificaciones de transferencia de archivos

  3. Las File Ingestion Specifications existentes se enumeran en la sección FILE INGESTION . Se pueden modificar, habilitar, inhabilitar o borrar con el ícono 'Actions' que se encuentra al costado de cada especificación de transferencia.

    Transferencia de archivos: Acción disponible en las especificaciones de transferencia

  4. Para crear una File Ingestion Specification nueva, haz clic en ADD NEW INGESTION SPECIFICATION.

  5. Aparecerá un nuevo menú lateral a la derecha de la pantalla con todos los parámetros necesarios para definir la nueva File Ingestion Specification:

    Transferencia de archivos: Nueva especificación de transferencia de archivos

  6. Para crear una especificación de transferencia de archivos CSV que proporcionen nombres de columnas y agreguen metadatos de transferencia nueva, selecciona CSV en 'Source Type'.

  7. Proporciona los ocho parámetros obligatorios, en este ejemplo:

    • name: Nombre de la File Ingestion Specification.
    • folderName: Carpeta a la que se subirán los archivos de esta File Ingestion Specification.
    • separator: Separador que se usará (, se usa si no se proporciona ninguno).
    • skip_rows: Indica si se deben omitir filas antes de comenzar a leer el archivo CSV.
    • headers:
      • infer_headers: Indica si la primera fila leída debe inferir los encabezados. Selecciona 'NO' para no deducir los nombres de las columnas de los encabezados.
      • headerNames: Proporciona una lista ordenada de nombres de encabezado para usar.
    • insert_metadata: Indica si se deben incluir metadatos relacionados con el archivo transferido (filePath, fileName, ingestionName).

    Ingesta de archivos: Nueva especificación avanzada de ingesta de archivos CSV

  8. Una vez que se completen los parámetros, haz clic en el botón 'CREATE'. Si se creó correctamente la nueva especificación de transferencia de archivos, aparecerá un mensaje de confirmación.

Transfiere archivos CSV, deduce nombres de encabezados y omite 5 filas antes de comenzar a leer el archivo

REST

POST configuration/v1/ingestions

{
  "name": "csv-skip-rows",
  "source": "CSV",
  "folderName": "csv-skip",
  "skipRows": 5,
  "separator": ",",
  "headers": {
    "inferHeaders": true
  }
}

Console

  1. Accede a la configuración de File Ingestion Specification.
  2. Abre la sección FILE INGESTION en el menú superior de la 'Cloud Management' sección.

    Transferencia de archivos: Enumera las especificaciones de transferencia de archivos

  3. Las File Ingestion Specifications existentes se enumeran en la sección FILE INGESTION . Se pueden modificar, habilitar, inhabilitar o borrar con el ícono 'Actions' que se encuentra al costado de cada especificación de transferencia.

    Transferencia de archivos: Acción disponible en las especificaciones de transferencia

  4. Para crear una File Ingestion Specification nueva, haz clic en ADD NEW INGESTION SPECIFICATION.

  5. Aparecerá un nuevo menú lateral a la derecha de la pantalla con todos los parámetros necesarios para definir la nueva File Ingestion Specification:

    Transferencia de archivos: Nueva especificación de transferencia de archivos

  6. Para crear una especificación de transferencia de archivos CSV que deduzcan nombres de encabezados y omitan 5 filas nueva, selecciona CSV en el menú 'Source Type'.

  7. Proporciona los siete parámetros obligatorios, en este ejemplo:

    • name: Nombre de la File Ingestion Specification.
    • folderName: Carpeta a la que se subirán los archivos de esta File Ingestion Specification.
    • separator: Separador que se usará (, se usa si no se proporciona ninguno).
    • skip_rows: Selecciona la cantidad de filas que se omitirán, en este caso, 5.
    • headers:
      • infer_headers: Indica si la primera fila leída debe inferir los encabezados. Selecciona 'YES' para deducir los nombres de las columnas de los encabezados.
    • insert_metadata: Indica si se deben incluir metadatos relacionados con el archivo transferido (filePath, fileName, ingestionName).

    Ingesta de archivos: Nueva especificación de ingesta de archivos CSV con omisión de filas

  8. Una vez que se completen los parámetros, haz clic en 'CREATE'.

  9. Si se creó correctamente la nueva especificación de transferencia de archivos, aparecerá un mensaje de confirmación.

Transfiere archivos AVRO generados por la ruta sin procesar del escritor de Cloud Storage

REST

POST configuration/v1/ingestions

{
  "name": "avro-reprocess",
  "source": "AVRO_RAW_WRITER",
  "folderName": "avro-raw"
}

Esto es particularmente útil si necesitas volver a procesar archivos. Puedes usar la partición de fecha en la carpeta de archivos sin procesar para copiar solo los archivos del período necesario. Por ejemplo:

gcloud storage cp "gs://<project-id>-raw/v1/dt=2023-06-19/*" \
gs://<project-id>-batch-ingestion/avro-raw/

Console

  1. Accede a la configuración de File Ingestion Specification.
  2. Abre la sección FILE INGESTION en el menú superior de la 'Cloud Management' sección.

    Transferencia de archivos: Enumera las especificaciones de transferencia de archivos

  3. Las File Ingestion Specifications existentes se enumeran en la sección FILE INGESTION . Se pueden modificar, habilitar, inhabilitar o borrar con el ícono 'Actions' que se encuentra al costado de cada especificación de transferencia.

    Transferencia de archivos: Acción disponible en las especificaciones de transferencia

  4. Para crear una File Ingestion Specification nueva, haz clic en ADD NEW INGESTION SPECIFICATION.

  5. Aparecerá un nuevo menú lateral a la derecha de la pantalla con todos los parámetros necesarios para definir la nueva File Ingestion Specification:

    Transferencia de archivos: Nueva especificación de transferencia de archivos

  6. Para crear una especificación de transferencia de archivos AVRO generados por las rutas sin procesar del escritor de Cloud Storage nueva, selecciona AVRO Raw en el menú 'Source Type' y proporciona los dos parámetros obligatorios, en este ejemplo:

    • name: Nombre de la File Ingestion Specification.
    • folderName: Carpeta a la que se subirán los archivos de esta File Ingestion Specification.

    Ingesta de archivos: Nueva especificación de ingesta de archivos AVRO sin procesar

  7. Una vez que se completen los parámetros, haz clic en 'CREATE'.

  8. Si se creó correctamente la nueva especificación de transferencia de archivos, aparecerá un mensaje de confirmación.

Esto es particularmente útil si necesitas volver a procesar archivos. Puedes usar la partición de fecha en la carpeta de archivos sin procesar para copiar solo los archivos del período necesario, por ejemplo:

  gcloud storage cp "gs://<project-id>-raw/v1/dt=2023-06-19/*" \
  gs://<project-id>-batch-ingestion/avro-raw/