Ingérer des données par lot

Bien que la principale façon d'ingérer des données dans Manufacturing Data Engine (MDE) consiste à utiliser le streaming via Manufacturing Connect edge (MCe) ou à envoyer des messages à Pub/Sub, il est également possible d'ingérer des fichiers par lot. Cela peut être utile pour retraiter des données ou importer des données à partir de systèmes externes.

Le chargement par lot fonctionne en créant une IngestionSpecification à l'aide de l'interface Web ou de l'API, puis en important un ou plusieurs fichiers dans un dossier d'un bucket Cloud Storage configuré par MDE, qui porte par défaut le nom <project-id>-batch-ingestion. Lorsqu'un nouveau fichier est importé dans ce bucket, il est détecté par la tâche Dataflow Cloud Storage Reader. La tâche divise le fichier en messages individuels et envoie chacun d'eux au sujet Pub/Sub input-messages.

Formats compatibles

Le chargement par lot est compatible avec les formats de données suivants :

  • JSON : délimité par un retour à la ligne. Chaque ligne est envoyée sous forme de nouveau message.
  • CSV : avec ou sans en-têtes (peut être défini), compatible avec l'omission de lignes et différents séparateurs. Le message est converti au format JSON à l'aide de chaque colonne d'en-tête comme clé et de la colonne de ligne correspondante comme valeur.
  • AVRO : mappe chaque ligne d'AVRO au format JSON.
  • AVRO_RAW_WRITER : lit les messages non traités écrits par le Cloud Storage Writer et réécrit chaque message en conservant l'ID de message Pub/Sub.

Configuration

Pour que Cloud Storage Reader puisse traiter les fichiers, il a besoin d'une File Ingestion Specification qui définit le type de fichier attendu, ses options et le dossier dans lequel il sera importé.

Tous les formats nécessitent les paramètres suivants :

  • name: nom de la File Ingestion Specification.
  • folderName : dossier dans lequel les fichiers de cette File Ingestion Specification seront importés.
  • source : format à utiliser (JSON/CSV/AVRO/AVRO_RAW_WRITER).

En outre, la source CSV est compatible avec les éléments suivants :

  • separator : séparateur à utiliser (, est utilisé si aucun n'est fourni).
  • skip_rows : indique s'il faut ignorer des lignes avant de commencer à lire le fichier CSV.
  • headers:
    • infer_headers : indique si les en-têtes doivent être déduits de la première ligne lue.
    • headerNames : fournit une liste ordonnée des noms d'en-tête à utiliser.
  • insert_metadata : indique s'il faut inclure des métadonnées liées au fichier ingéré (filePath, fileName, ingestionName). Elles sont ajoutées en tant que paires clé/valeur supplémentaires au message envoyé.

Exemples de configurations

Cette section contient quelques exemples de configurations pour le chargement par lot.

Ingérer des fichiers JSON délimités par un retour à la ligne

REST

POST configuration/v1/ingestions

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

Console

  1. Accédez à la configuration de la File Ingestion Specification.
  2. Ouvrez la section FILE INGESTION (INGESTION DE FICHIERS) dans le menu du haut de la section'Cloud Management' (Gestion du cloud).

    Ingestion de fichiers : liste des spécifications d&#39;ingestion de fichiers

  3. Les File Ingestion Specifications (Spécifications d'ingestion de fichiers) existantes sont listées dans la section FILE INGESTION (INGESTION DE FICHIERS). Vous pouvez les modifier, les activer, les désactiver ou les supprimer à l'aide de l'icône 'Actions' (Actions) située sur le côté de chaque spécification d'ingestion.

    Ingestion de fichiers : action disponible sur les spécifications d&#39;ingestion

  4. Pour créer une nouvelle File Ingestion Specification (Spécification d'ingestion de fichiers), cliquez sur 'ADD NEW INGESTION SPECIFICATION' (AJOUTER UNE SPÉCIFICATION D'INGESTION). Un nouveau menu latéral s'affiche à droite de l'écran, contenant tous les paramètres nécessaires pour définir la nouvelle File Ingestion Specification (Spécification d'ingestion de fichiers) :

    Ingestion de fichiers : nouvelle spécification d&#39;ingestion de fichiers

  5. Pour créer une spécification d'ingestion de fichiers JSON délimités par un retour à la ligne sélectionnez JSON dans le menu 'Source Type' (Type de source) et fournissez les deux paramètres obligatoires, dans cet exemple :

    • name: nom de la File Ingestion Specification.
    • folderName : dossier dans lequel les fichiers de cette File Ingestion Specification seront importés.

    Ingestion de fichiers : nouvelle spécification d&#39;ingestion de fichiers JSON

  6. Une fois les paramètres renseignés, cliquez sur 'CREATE' (CRÉER). Si la nouvelle spécification d'ingestion de fichiers a été créée, un message de confirmation s'affiche.

Ingérer des fichiers AVRO

REST

POST configuration/v1/ingestions

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

Console

  1. Accédez à la configuration de la File Ingestion Specification.
  2. Ouvrez la section FILE INGESTION (INGESTION DE FICHIERS) dans le menu du haut de la section'Cloud Management' (Gestion du cloud).

    Ingestion de fichiers : liste des spécifications d&#39;ingestion de fichiers

  3. Les File Ingestion Specifications (Spécifications d'ingestion de fichiers) existantes sont listées dans la section FILE INGESTION (INGESTION DE FICHIERS). Vous pouvez les modifier, les activer, les désactiver ou les supprimer à l'aide de l'icône 'Actions' (Actions) située sur le côté de chaque spécification d'ingestion.

    Ingestion de fichiers : action disponible sur les spécifications d&#39;ingestion

  4. Pour créer une File Ingestion Specification (Spécification d'ingestion de fichiers), cliquez sur ADD NEW INGESTION SPECIFICATION (AJOUTER UNE SPÉCIFICATION D'INGESTION).

  5. Un nouveau menu latéral s'affiche à droite de l'écran, contenant tous les paramètres nécessaires pour définir la nouvelle File Ingestion Specification (Spécification d'ingestion de fichiers) :

    Ingestion de fichiers : nouvelle spécification d&#39;ingestion de fichiers

  6. Pour créer une spécification d'ingestion de fichiers AVRO, sélectionnez AVRO dans le menu 'Source Type'.

  7. Fournissez les deux paramètres obligatoires, dans cet exemple :

    • name: nom de la File Ingestion Specification.
    • folderName : dossier dans lequel les fichiers de cette File Ingestion Specification seront importés.

    Ingestion de fichiers : nouvelle spécification d&#39;ingestion de fichiers AVRO

  8. Une fois les paramètres renseignés, cliquez sur 'CREATE' (CRÉER). Si la nouvelle spécification d'ingestion de fichiers a été créée, un message de confirmation s'affiche.

Ingérer des fichiers CSV en déduisant les noms de colonnes à partir des en-têtes

REST

POST configuration/v1/ingestions

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

Console

  1. Accédez à l'interface Web de Manufacturing Connect.
  2. Accédez à la configuration de la File Ingestion Specification.
  3. Ouvrez la section FILE INGESTION (INGESTION DE FICHIERS) dans le menu du haut de la section'Cloud Management' (Gestion du cloud).

    Ingestion de fichiers : liste des spécifications d&#39;ingestion de fichiers

  4. Les File Ingestion Specifications (Spécifications d'ingestion de fichiers) existantes sont listées dans la section FILE INGESTION (INGESTION DE FICHIERS). Vous pouvez les modifier, les activer, les désactiver ou les supprimer à l'aide de l'icône 'Actions' (Actions) située sur le côté de chaque spécification d'ingestion.

    Ingestion de fichiers : action disponible sur les spécifications d&#39;ingestion

  5. Pour créer une File Ingestion Specification (Spécification d'ingestion de fichiers), cliquez sur ADD NEW INGESTION SPECIFICATION (AJOUTER UNE SPÉCIFICATION D'INGESTION).

  6. Un nouveau menu latéral s'affiche à droite de l'écran, contenant tous les paramètres nécessaires pour définir la nouvelle File Ingestion Specification (Spécification d'ingestion de fichiers) :

    Ingestion de fichiers : nouvelle spécification d&#39;ingestion de fichiers

  7. Pour créer une File Ingestion Specification (Spécification d'ingestion de fichiers), cliquez sur le 'ADD NEW INGESTION SPECIFICATION' (AJOUTER UNE SPÉCIFICATION D'INGESTION).

  8. Un nouveau menu latéral s'affiche à droite de l'écran, contenant tous les paramètres nécessaires pour définir la

    File Ingestion Specification (Spécification d'ingestion de fichiers) :

    Ingestion de fichiers : nouvelle spécification d&#39;ingestion de fichiers

  9. Pour créer une nouvelle spécification d'ingestion de fichiers CSV en déduisant les noms de colonnes à partir des en-têtes, sélectionnez CSV dans le menu 'Source Type' et fournissez les sept paramètres obligatoires, dans cet exemple :

    • name: nom de la File Ingestion Specification.
    • folderName : dossier dans lequel les fichiers de cette File Ingestion Specification seront importés.
    • separator : séparateur à utiliser (, est utilisé si aucun n'est fourni).
    • skip_rows : indique s'il faut ignorer des lignes avant de commencer à lire le fichier CSV.
    • headers:
    • infer_headers : indique si les en-têtes doivent être déduits de la première ligne lue. Sélectionnez 'YES' (OUI) pour déduire les noms de colonnes à partir des en-têtes.
    • insert_metadata : indique s'il faut inclure des métadonnées liées au fichier ingéré (filePath, fileName, ingestionName).

    Ingestion de fichiers : nouvelle spécification d&#39;ingestion de fichiers CSV

  10. Une fois les paramètres renseignés, cliquez sur 'CREATE' (CRÉER).

  11. Si la nouvelle spécification d'ingestion de fichiers a été créée, un message de confirmation s'affiche.

Ingérer des fichiers CSV en fournissant les noms de colonnes et en ajoutant des métadonnées d'ingestion

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. Accédez à la configuration de la File Ingestion Specification.
  2. Ouvrez la section FILE INGESTION (INGESTION DE FICHIERS) dans le menu du haut de la section'Cloud Management' (Gestion du cloud).

    Ingestion de fichiers : liste des spécifications d&#39;ingestion de fichiers

  3. Les File Ingestion Specifications (Spécifications d'ingestion de fichiers) existantes sont listées dans la section FILE INGESTION (INGESTION DE FICHIERS). Vous pouvez les modifier, les activer, les désactiver ou les supprimer à l'aide de l'icône 'Actions' (Actions) située sur le côté de chaque spécification d'ingestion.

    Ingestion de fichiers : action disponible sur les spécifications d&#39;ingestion

  4. Pour créer une File Ingestion Specification (Spécification d'ingestion de fichiers), cliquez sur ADD NEW INGESTION SPECIFICATION (AJOUTER UNE SPÉCIFICATION D'INGESTION).

  5. Un nouveau menu latéral s'affiche à droite de l'écran, contenant tous les paramètres nécessaires pour définir la nouvelle File Ingestion Specification (Spécification d'ingestion de fichiers) :

    Ingestion de fichiers : nouvelle spécification d&#39;ingestion de fichiers

  6. Pour créer une spécification d'ingestion de fichiers CSV en fournissant les noms de colonnes et en ajoutant des métadonnées d'ingestion, sélectionnez CSV dans le 'Source Type' (Type de source).

  7. Fournissez les huit paramètres obligatoires, dans cet exemple :

    • name: nom de la File Ingestion Specification.
    • folderName : dossier dans lequel les fichiers de cette File Ingestion Specification seront importés.
    • separator : séparateur à utiliser (, est utilisé si aucun n'est fourni).
    • skip_rows : indique s'il faut ignorer des lignes avant de commencer à lire le fichier CSV.
    • headers:
      • infer_headers : indique si les en-têtes doivent être déduits de la première ligne lue. Sélectionnez 'NO' (NON) pour ne pas déduire les noms de colonnes à partir des en-têtes.
      • headerNames : fournit une liste ordonnée des noms d'en-tête à utiliser.
    • insert_metadata : indique s'il faut inclure des métadonnées liées au fichier ingéré (filePath, fileName, ingestionName).

    Ingestion de fichiers : nouvelle spécification avancée pour l&#39;ingestion de fichiers CSV

  8. Une fois les paramètres renseignés, cliquez sur le bouton 'CREATE' (CRÉER). Si la nouvelle spécification d'ingestion de fichiers a été créée, un message de confirmation s'affiche.

Ingérer des fichiers CSV en déduisant les noms d'en-tête et en ignorant cinq lignes avant de commencer à lire le fichier

REST

POST configuration/v1/ingestions

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

Console

  1. Accédez à la configuration de la File Ingestion Specification.
  2. Ouvrez la section FILE INGESTION (INGESTION DE FICHIERS) dans le menu du haut de la section'Cloud Management' (Gestion du cloud).

    Ingestion de fichiers : liste des spécifications d&#39;ingestion de fichiers

  3. Les File Ingestion Specifications (Spécifications d'ingestion de fichiers) existantes sont listées dans la section FILE INGESTION (INGESTION DE FICHIERS). Vous pouvez les modifier, les activer, les désactiver ou les supprimer à l'aide de l'icône 'Actions' (Actions) située sur le côté de chaque spécification d'ingestion.

    Ingestion de fichiers : action disponible sur les spécifications d&#39;ingestion

  4. Pour créer une File Ingestion Specification (Spécification d'ingestion de fichiers), cliquez sur ADD NEW INGESTION SPECIFICATION (AJOUTER UNE SPÉCIFICATION D'INGESTION).

  5. Un nouveau menu latéral s'affiche à droite de l'écran, contenant tous les paramètres nécessaires pour définir la nouvelle File Ingestion Specification (Spécification d'ingestion de fichiers) :

    Ingestion de fichiers : nouvelle spécification d&#39;ingestion de fichiers

  6. Pour créer une spécification d'ingestion de fichiers CSV en déduisant les noms d'en-tête et en ignorant cinq lignes , sélectionnez CSV dans le menu 'Source Type' (Type de source).

  7. Fournissez les sept paramètres obligatoires, dans cet exemple :

    • name: nom de la File Ingestion Specification.
    • folderName : dossier dans lequel les fichiers de cette File Ingestion Specification seront importés.
    • separator : séparateur à utiliser (, est utilisé si aucun n'est fourni).
    • skip_rows : sélectionnez le nombre de lignes à ignorer, dans ce cas 5.
    • headers:
      • infer_headers : indique si les en-têtes doivent être déduits de la première ligne lue. Sélectionnez 'YES' (OUI) pour déduire les noms de colonnes à partir des en-têtes.
    • insert_metadata : indique s'il faut inclure des métadonnées liées au fichier ingéré (filePath, fileName, ingestionName).

    Ingestion de fichiers : nouvelle spécification d&#39;ingestion de fichiers CSV avec ligne à ignorer

  8. Une fois les paramètres renseignés, cliquez sur 'CREATE' (CRÉER).

  9. Si la nouvelle spécification d'ingestion de fichiers a été créée, un message de confirmation s'affiche.

Ingérer des fichiers AVRO générés par le chemin brut de Cloud Storage Writer

REST

POST configuration/v1/ingestions

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

Cela est particulièrement utile si vous devez retraiter des fichiers. Vous pouvez utiliser la partition de date dans le dossier des fichiers bruts pour ne copier que les fichiers de la plage de dates nécessaire. Exemple :

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

Console

  1. Accédez à la configuration de la File Ingestion Specification.
  2. Ouvrez la section FILE INGESTION (INGESTION DE FICHIERS) dans le menu du haut de la section'Cloud Management' (Gestion du cloud).

    Ingestion de fichiers : liste des spécifications d&#39;ingestion de fichiers

  3. Les File Ingestion Specifications (Spécifications d'ingestion de fichiers) existantes sont listées dans la section FILE INGESTION (INGESTION DE FICHIERS). Vous pouvez les modifier, les activer, les désactiver ou les supprimer à l'aide de l'icône 'Actions' (Actions) située sur le côté de chaque spécification d'ingestion.

    Ingestion de fichiers : action disponible sur les spécifications d&#39;ingestion

  4. Pour créer une File Ingestion Specification (Spécification d'ingestion de fichiers), cliquez sur ADD NEW INGESTION SPECIFICATION (AJOUTER UNE SPÉCIFICATION D'INGESTION).

  5. Un nouveau menu latéral s'affiche à droite de l'écran, contenant tous les paramètres nécessaires pour définir la nouvelle File Ingestion Specification (Spécification d'ingestion de fichiers) :

    Ingestion de fichiers : nouvelle spécification d&#39;ingestion de fichiers

  6. Pour créer une spécification d'ingestion de fichiers AVRO générés par les chemins bruts de Cloud Storage Writer , sélectionnez AVRO Raw (AVRO brut) dans le menu 'Source Type' (Type de source) et fournissez les deux paramètres obligatoires, dans cet exemple :

    • name: nom de la File Ingestion Specification.
    • folderName : dossier dans lequel les fichiers de cette File Ingestion Specification seront importés.

    Ingestion de fichiers : nouvelle spécification d&#39;ingestion de fichiers AVRO bruts

  7. Une fois les paramètres renseignés, cliquez sur 'CREATE' (CRÉER).

  8. Si la nouvelle spécification d'ingestion de fichiers a été créée, un message de confirmation s'affiche.

Cela est particulièrement utile si vous devez retraiter des fichiers. Vous pouvez utiliser la partition de date dans le dossier des fichiers bruts pour ne copier que les fichiers de la plage de dates nécessaire, par exemple :

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