Ingestion par lots

Vos flux de données vous permettent de rendre votre restaurant, vos services et votre menu disponibles dans Ordering de bout en bout.

Ce document explique comment héberger vos inventaires de bac à sable et de production, et comment utiliser l'ingestion par lot pour mettre à jour votre inventaire dans Ordering End-to-End.

Environnements de flux de données

Trois environnements de flux de données sont disponibles pour le développement de votre intégration:

Environnement du flux Description Ingestion par lots
Bac à sable Environnement de test pour le développement de votre flux. Obligatoire
Production L'environnement de production de l'inventaire que vous souhaitez lancer. Obligatoire

Héberger des flux de données

Pour que Ordering End-to-End traite vos flux de données de bac à sable et de production par ingestion par lot, vous devez héberger vos fichiers de flux de données dans Google Cloud Storage, Amazon S3 ou HTTPS avec un sitemap.

Nous vous recommandons d'héberger les flux de données de vos environnements de bac à sable et de production séparément. Cette approche vous permet de développer et de tester votre flux dans votre environnement de bac à sable avant de déployer les modifications en production.

Par exemple, si vous utilisez Google Cloud Storage comme option d'hébergement, vous obtiendrez les chemins d'accès suivants:

  • Flux de bac à sable:gs://foorestaurant-google-feed-sandbox/
  • Flux de production: gs://foorestaurant-google-feed-prod/

Pour héberger votre inventaire, procédez comme suit:

  1. Générez les fichiers de votre flux de données.
  2. Choisissez une solution d'hébergement.
  3. Hébergez vos flux de données.
  4. Assurez-vous que vos fichiers de flux de données sont mis à jour régulièrement. Les flux de données de production doivent être mis à jour quotidiennement.

Pour savoir comment créer un flux d'inventaire, consultez la documentation sur les entités Restaurant, Service et Menu, ainsi que la section Créer un flux de données.

Consignes concernant les fichiers de flux de données

Chaque fichier, qui peut contenir plusieurs entités, ne doit pas dépasser 200 Mo. Les entités de niveau supérieur Restaurant, Service et Menu, ainsi que leurs entités enfants, ne doivent pas dépasser 4 Mo au total.

Choisir une solution d'hébergement

Le tableau suivant présente les options d'hébergement de vos flux de données et la manière dont ces hébergeurs fonctionnent avec l'ordre de bout en bout:

Amazon S3 Google Cloud Storage HTTPS avec un sitemap
Identifiants et accès

Fournissez à Google les informations suivantes:

  • ID de clé d'accès
  • Clé d'accès secrète
  • Chemins d'accès aux répertoires S3 de production et de bac à sable, ainsi qu'au fichier marker.txt. Le chemin d'accès doit commencer par s3://.

Le bucket S3 doit inclure les informations suivantes:

  • Fichiers de flux pour votre inventaire
  • marker.txt, qui contient un code temporel utilisé pour la récupération.

Exemple de fichier marker.txt: 2018-12-03T08:30:42.694Z

Indiquez à Google les chemins d'accès aux répertoires de vos buckets de production et de bac à sable, ainsi que le fichier marker.txt. Les chemins doivent commencer par gs://.

Ajoutez le compte de service fourni par votre consultant Google en tant que lecteur de votre bucket Google Cloud Storage.

Pour en savoir plus sur le contrôle des accès à Google Cloud Storage (GCS), consultez la page Console Google Cloud Platform: définir les autorisations de bucket.

Le bucket GCS doit inclure les informations suivantes:

  • Fichiers de flux pour votre inventaire
  • marker.txt, qui contient un code temporel utilisé pour la récupération.

Exemple de fichier marker.txt: 2018-12-03T08:30:42.694Z

Fournissez à Google les informations suivantes:

  • Identifiants de votre authentification de base.
  • Chemin d'accès aux plans de site de production et de bac à sable. Le chemin d'accès doit commencer par https://.
  • Protocole: vous devez rendre vos fichiers de flux disponibles via HTTPS, et non HTTP.
  • Sécurité: Google vous recommande vivement de protéger vos fichiers de flux hébergés à l'aide de l'authentification de base.
Comment Google sait-il quels fichiers doivent être récupérés ? Répertoire de tous les fichiers du bucket. Répertoire de tous les fichiers du bucket. URL individuelles des fichiers listés dans le sitemap.
Comment Google sait-il que les fichiers sont prêts à être récupérés ? Une fois que vous avez généré vos flux de données, mettez à jour le fichier marker.txt avec le dernier code temporel. Une fois que vous avez généré vos flux de données, mettez à jour le fichier marker.txt avec le dernier code temporel. Une fois que vous avez généré vos flux de données, mettez à jour l'en-tête de réponse last-modified de votre sitemap.xml avec le dernier code temporel.
Limites de fichiers

Nombre maximal de fichiers: 100 000.

Votre bucket Amazon S3 ne doit pas contenir plus de 100 000 fichiers au total.

Nombre maximal de fichiers: 100 000.

Votre bucket Google Cloud Storage doit contenir moins de 100 000 fichiers au total.

Nombre maximal de fichiers: 100 000.

Le nombre de chemins d'accès aux fichiers dans votre fichier XML de sitemap doit être inférieur à 100 000.

Associer vos flux de données pour l'ingestion par lots

Une fois que vous avez hébergé vos flux, vous devez les associer à votre projet dans Actions Center. La configuration initiale des flux de production s'effectue sur la page Tâches d'intégration. Par la suite, la configuration des flux de production et de bac à sable peut être modifiée à tout moment par les utilisateurs du portail disposant d'un rôle d'administrateur sur la page Configuration > Flux. L'environnement de bac à sable est utilisé à des fins de développement et de test, tandis que les flux de production sont présentés aux utilisateurs.

Si vous hébergez vos flux de données avec Amazon S3

  1. Dans le Centre d'actions, accédez à Configuration > Flux.
  2. Cliquez sur Modifier, puis remplissez le formulaire Mettre à jour le flux:

    • Méthode d'envoi du flux:définissez cette option sur Amazon S3.
    • Fichier de repère:indiquez l'URL du fichier marker.txt.
    • Fichiers de données:indiquez l'URL du bucket S3 contenant les flux de données.
    • ID d'accès:saisissez l'ID de clé d'accès IAM avec les autorisations de lecture des ressources S3.
    • Access Key (Clé d'accès) : saisissez la clé d'accès secrète IAM avec les autorisations de lecture des ressources S3.
  3. Cliquez sur Envoyer.
  4. Après une à deux heures, vérifiez si l'ingestion par lot récupère vos fichiers de flux.

Si vous hébergez vos flux de données avec Google Cloud Storage

  1. Dans le Centre d'actions, accédez à Configuration > Flux.
  2. Cliquez sur Modifier, puis remplissez le formulaire Mettre à jour le flux:

    • Méthode d'envoi du flux:définissez cette option sur Google Cloud Storage.
    • Fichier de repères:indiquez l'URL du fichier marker.txt.
    • Fichiers de données:indiquez l'URL du bucket GCS contenant les flux de données.
  3. Cliquez sur Envoyer.
  4. Un compte de service est créé pour accéder à votre bucket GCS. Le nom du compte est disponible dans Configuration > Flux une fois les tâches d'intégration terminées. Ce compte de service a besoin du rôle "Lecteur d'objets anciens de l'espace de stockage". Ce rôle peut être attribué au compte de service sur la page IAM de la console Google Cloud.
  5. Après une à deux heures, vérifiez si l'ingestion par lot récupère vos fichiers de flux.

Si vous hébergez vos flux de données avec HTTPS

  1. Dans le Centre d'actions, accédez à Configuration > Flux.
  2. Cliquez sur Modifier, puis remplissez le formulaire Mettre à jour le flux:

    • Méthode d'envoi du flux:définissez cette valeur sur HTTPS.
    • Fichier sitemap:indiquez l'URL du fichier sitemap.xml.
    • Nom d'utilisateur:saisissez les identifiants du nom d'utilisateur pour accéder au serveur HTTPS.
    • Mot de passe:saisissez le mot de passe pour accéder au serveur HTTPS.
  3. Cliquez sur Envoyer.
  4. Après une à deux heures, vérifiez si l'ingestion par lot récupère vos fichiers de flux.

Exemples de chemins

Le tableau suivant contient des exemples de chemins d'accès pour chacune des options d'hébergement:

Amazon S3 Google Cloud Storage HTTPS avec un sitemap
Chemin s3://foorestaurant-google-feed-sandbox/ gs://foorestaurant-google-feed-sandbox/ https://sandbox-foorestaurant.com/sitemap.xml
Fichier de repères s3://foorestaurant-google-feed-sandbox/marker.txt gs://foorestaurant-google-feed-sandbox/marker.txt Non applicable

Sitemaps pour l'hébergement HTTPS

Suivez les consignes ci-dessous lorsque vous définissez des sitemaps:

  • Les liens de votre sitemap doivent pointer vers les fichiers eux-mêmes.
  • Si votre sitemap inclut des références à un fournisseur cloud au lieu de votre propre nom de domaine, assurez-vous que le début des URL, comme https://www.yourcloudprovider.com/your_id, est stable et unique à votre tâche par lot.
  • Veillez à ne pas importer de sitemaps partiels (par exemple, en cas d'importation partielle de données). Google n'ingère alors que les fichiers du sitemap, ce qui entraîne une baisse des niveaux d'inventaire et peut bloquer l'ingestion de votre flux.
  • Assurez-vous que les chemins d'accès aux fichiers référencés dans le sitemap ne changent pas. Par exemple, ne faites pas référence à https://www.yourcloudprovider.com/your_id/10000.json aujourd'hui, puis à https://www.yourcloudprovider.com/your_id/20000.json demain.
Exemple de sitemap

Voici un exemple de fichier sitemap.xml qui diffuse des fichiers de flux de données:

Exemple 1: Entités regroupées par marchands (recommandé)

XML

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
   <loc>https://your_fulfillment_url.com/restaurant_1.ndjson</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
 <url>
   <loc>https://your_fulfillment_url.com/restaurant_2.ndjson</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
 <url>
   <loc>https://your_fulfillment_url.com/restaurant_3.ndjson</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
</urlset>

Exemple 2: Entités regroupées par types

XML

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
   <loc>https://your_fulfillment_url.com/restaurant.json</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
 <url>
   <loc>https://your_fulfillment_url.com/menu.json</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
 <url>
   <loc>https://your_fulfillment_url.com/service.json</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
</urlset>

Mettre à jour vos flux de données

Une fois vos flux de données connectés, Google recherche des mises à jour une fois par heure, mais nous n'ingérons tous les flux de données que lorsque les fichiers marker.txt ou sitemap.xml ont été modifiés. Nous vous demandons de mettre à jour vos flux de données une fois par jour pour éviter que votre inventaire ne devienne obsolète.

Pour spécifier que les flux de données ont été modifiés et sont prêts à être ingérés par lot, mettez à jour le champ de métadonnées d'objet last-modified du fichier marker.txt (pour GCP et S3) ou l'en-tête de réponse last-modified du fichier sitemap.xml. Google utilise ces valeurs pour déterminer la fraîcheur d'un flux de données.

Pendant l'ingestion du flux par lot,

  • Les nouvelles entités qui n'existent pas dans votre inventaire actuel de bout en bout de commande et qui ne comportent aucune erreur seront insérées.
  • Entités déjà présentes dans l'inventaire qui ne présentent aucune erreur lors de l'ingestion et qui ont un dateModified plus récent que leur entrée actuelle ou, en l'absence de dateModified, l'heure de début de l'ingestion du flux est plus récente que l'entrée actuelle. Elles seront mises à jour, sinon elles seront marquées comme obsolètes.
  • Les entités qui faisaient partie d'un flux précédent et qui ne sont plus incluses dans le flux par lot en cours de traitement seront supprimées, à condition qu'il n'y ait pas d'erreurs au niveau du fichier dans le flux.

Le code temporel ou l'en-tête de réponse last-modified ne doit être mis à jour qu'après la génération et la mise à jour de tous les fichiers de flux de données. Limitez les tâches par lot qui mettent à jour vos flux de données à une seule fois par jour. Vous pouvez également laisser un écart d'au moins trois heures entre chaque tâche par lot. Si vous ne suivez pas ces étapes, Google risque d'extraire des fichiers obsolètes.