Ingestion par lots

Vos flux de données vous permettent de proposer votre restaurant, vos services et votre menu dans l'interface de commande de bout en bout.

Ce document explique comment héberger vos inventaires de bac à sable et de production, et comment utiliser l'ingestion par lots pour mettre à jour votre inventaire dans le processus de commande de bout en bout.

Environnements de flux de données

Trois environnements de flux de données sont disponibles pour le développement de vos intégrations:

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

Hébergement de flux de données

Pour que la commande de bout en bout puisse traiter vos flux de données de bac à sable et de production par ingestion par lots, 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 séparément les flux de données de vos environnements de bac à sable et de production. Cette approche vous permet d'effectuer le développement et les tests dans votre environnement de flux de bac à sable avant de déployer les modifications en production.

Par exemple, si vous utilisez Google Cloud Storage en tant qu'option d'hébergement, vous disposez des chemins suivants:

  • Flux sandbox: 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 vos fichiers de flux de données.
  2. Choisissez une solution d'hébergement.
  3. Hébergez vos flux de données.
  4. Veillez à mettre à jour régulièrement les fichiers de votre flux de données. 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

La taille de chaque fichier, qui peut contenir plusieurs entités, ne doit pas dépasser 200 Mo. Les entités de premier niveau 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 répertorie les options d'hébergement de vos flux de données et la manière dont ces hôtes fonctionnent avec le service de commande 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 à vos répertoires S3 de production et de bac à sable, ainsi que le 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 horodatage utilisé pour l'extraction.

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

Indiquez à Google les chemins d'accès à vos répertoires de buckets de production et de bac à sable, ainsi qu'au fichier marker.txt. Les chemins d'accès 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 pour Google Cloud Storage (GCS), consultez la page Console Google Cloud Platform: Définir des autorisations de bucket.

Le bucket GCS doit inclure les informations suivantes:

  • Fichiers de flux pour votre inventaire.
  • marker.txt, qui contient un horodatage utilisé pour l'extraction.

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

Fournissez à Google les informations suivantes:

  • Des identifiants pour votre authentification de base.
  • Chemin d'accès aux chemins d'accès des sitemaps de production et de bac à sable. Le chemin d'accès doit commencer par https://.
  • Protocole: vos fichiers de flux doivent être disponibles via HTTPS, et non via 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 quels fichiers doivent être récupérés Liste des répertoires de tous les fichiers du bucket. Liste des répertoires de tous les fichiers du bucket. URL individuelles des fichiers répertoriés dans le sitemap.
Comment Google sait que les fichiers sont prêts à être récupérés Une fois vos flux de données générés, mettez à jour le fichier marker.txt avec le dernier horodatage. Une fois vos flux de données générés, mettez à jour le fichier marker.txt avec le dernier horodatage. Une fois vos flux de données générés, mettez à jour l'en-tête de réponse last-modified de votre sitemap.xml avec le dernier horodatage.
Limites applicables aux fichiers

Nombre maximal de fichiers: 100 000.

Votre paquet Amazon S3 doit comporter moins 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 dans le fichier XML de votre sitemap doit être inférieur à 100 000.

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

Après avoir 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. Vous pourrez modifier la configuration des flux de production et de bac à sable à tout moment sur la page Configuration > Flux pour tout utilisateur du portail disposant d'un rôle d'administrateur. L'environnement 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 Actions, accédez à Configuration > Flux.
  2. Cliquez sur Modifier et remplissez le formulaire Mettre à jour le flux:

    • Feed Delivery method (Mode d'envoi du flux) : définissez Amazon S3.
    • Marker File (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 disposant des autorisations nécessaires pour lire les ressources S3.
    • Access Key (Clé d'accès) : saisissez la clé d'accès secrète IAM dotée des autorisations nécessaires pour lire les ressources S3.
  3. Cliquez sur Envoyer.
  4. Au bout d'une à deux heures, vérifiez si l'ingestion par lots récupère vos fichiers de flux.

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

  1. Dans le Centre Actions, accédez à Configuration > Flux.
  2. Cliquez sur Modifier et remplissez le formulaire Mettre à jour le flux:

    • Feed Delivery method (Mode d'envoi du flux) : définissez Google Cloud Storage.
    • Marker File (Fichier de repère) : 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. Vous trouverez le nom du compte dans Configuration > Flux une fois les tâches d'intégration terminées. Ce compte de service doit disposer du rôle "Lecteur des anciens objets 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. Au bout d'une à deux heures, vérifiez si l'ingestion par lots récupère vos fichiers de flux.

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

  1. Dans le Centre Actions, accédez à Configuration > Flux.
  2. Cliquez sur Modifier et remplissez le formulaire Mettre à jour le flux:

    • Mode d'envoi du flux:définissez-le 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 permettant d'accéder au serveur HTTPS.
  3. Cliquez sur Envoyer.
  4. Au bout d'une à deux heures, vérifiez si l'ingestion par lots récupère vos fichiers de flux.

Exemples de chemins

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

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

Plans de site pour l'hébergement HTTPS

Respectez les consignes suivantes lorsque vous définissez des sitemaps:

  • Les liens de votre sitemap doivent renvoyer 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, dans le cas d'une importation partielle de données). Si vous le faites, Google n'ingérera que les fichiers du sitemap, ce qui entraînera une baisse de votre inventaire et un blocage de 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, n'indiquez pas la référence de votre sitemap https://www.yourcloudprovider.com/your_id/10000.json aujourd'hui, mais seulement 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'ingrons tous les flux de données que lorsque les fichiers marker.txt ou sitemap.xml ont été modifiés. Vous devez probablement mettre à jour vos flux de données une fois par jour pour éviter que votre inventaire ne devienne obsolète.

Pour indiquer que les flux de données ont été modifiés et sont prêts pour l'ingestion par lots, 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 l'actualisation d'un flux de données.

Lors de l'ingestion du flux,

  • Les nouvelles entités qui n'existent pas dans votre inventaire de bout en bout des commandes et qui ne comportent aucune erreur seront insérées.
  • Les entités déjà présentes dans l'inventaire qui ne présentent aucune erreur lors de l'ingestion et dont la valeur dateModified est plus récente 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 dans laquelle elles seront mises à jour. Sinon, elles seront marquées comme non actualisées.
  • Les entités qui faisaient partie d'un flux précédent qui ne sont plus incluses dans le flux par lot en cours de traitement sont supprimées, à condition que le flux ne contienne pas d'erreurs au niveau du fichier.

L'horodatage ou l'en-tête de réponse last-modified ne doivent être mis à jour qu'après la génération et la mise à jour de tous les fichiers de flux de données. Limitez l'exécution des tâches par lot qui mettent à jour vos flux de données à une seule fois par jour. Vous pouvez également prévoir un intervalle d'au moins trois heures entre chaque tâche par lot. Si vous ne suivez pas ces étapes, Google peut récupérer les fichiers obsolètes.