Ingestão em lote

Seus feeds de dados permitem que você disponibilize seu restaurante, serviços e cardápio no sistema de pedidos de ponta a ponta.

Este documento aborda como hospedar os inventários de sandbox e de produção e usar a transferência em lote para atualizar o inventário no sistema de pedidos de ponta a ponta.

Ambientes de feed de dados

Há três ambientes de feed de dados disponíveis para o desenvolvimento da integração:

Ambiente do feed Descrição Ingestão em lote
Sandbox O ambiente de teste para o desenvolvimento do feed. Obrigatório
Produção O ambiente de produção do inventário que você quer lançar. Obrigatório

Hospedar feeds de dados

Para que o Ordering End-to-End processe os feeds de dados de sandbox e de produção por ingestão em lote, hospede os arquivos de feed de dados no Google Cloud Storage, no Amazon S3 ou no HTTPS com um sitemap.

Recomendamos hospedar os feeds de dados dos ambientes de sandbox e de produção separadamente. Essa abordagem permite que você faça o desenvolvimento e o teste no ambiente de sandbox antes de implantar as mudanças na produção.

Por exemplo, se você usar o Google Cloud Storage como uma opção de hospedagem, terá os seguintes caminhos:

  • Feed do sandbox:gs://foorestaurant-google-feed-sandbox/
  • Feed de produção:gs://foorestaurant-google-feed-prod/

Para hospedar seu inventário, faça o seguinte:

  1. Gere os arquivos do feed de dados.
  2. Escolha uma solução de hospedagem.
  3. Hospedar seus feeds de dados.
  4. Atualize os arquivos do feed de dados regularmente. Os feeds de dados de produção precisam ser atualizados diariamente.

Para saber como criar um feed de inventário, consulte a documentação das entidades Restaurant, Service e Menu, além da seção Criar um feed de dados.

Diretrizes sobre arquivos de feed de dados

Cada arquivo, que pode conter várias entidades, não pode exceder 200 MB. As entidades de nível superior Restaurant, Service e Menu, junto com as entidades filhas, não podem exceder 4 MB no total.

Escolher uma solução de hospedagem

A tabela a seguir lista as opções de hospedagem dos feeds de dados e como esses hosts funcionam com a ordenação completa:

Amazon S3 Google Cloud Storage HTTPS com um sitemap
Credenciais e acesso

Forneça ao Google as seguintes informações:

  • ID da chave de acesso
  • Chave de acesso do secret
  • Os caminhos para os diretórios S3 de produção e sandbox e o arquivo marker.txt. O caminho precisa começar com s3://.

O bucket do S3 precisa incluir as seguintes informações:

  • Arquivos de feed do seu inventário.
  • marker.txt, que contém um carimbo de data/hora usado para busca.

Exemplo de arquivo marker.txt: 2018-12-03T08:30:42.694Z

Informe ao Google os caminhos para os diretórios de bucket de produção e sandbox e o arquivo marker.txt. Os caminhos precisam começar com gs://.

Adicione a conta de serviço fornecida pelo consultor do Google como leitora do bucket do Google Cloud Storage.

Para mais informações sobre como controlar o acesso ao Google Cloud Storage (GCS), consulte Console do Google Cloud Platform: como definir permissões de bucket.

O bucket do GCS precisa incluir as seguintes informações:

  • Arquivos de feed do seu inventário.
  • marker.txt, que contém um carimbo de data/hora usado para busca.

Exemplo de arquivo marker.txt: 2018-12-03T08:30:42.694Z

Forneça ao Google as seguintes informações:

  • Credenciais para a autenticação básica.
  • O caminho para os caminhos de sitemap de produção e sandbox. O caminho precisa começar com https://.
  • Protocolo: os arquivos do feed precisam estar disponíveis pelo HTTPS, não pelo HTTP.
  • Segurança: o Google recomenda que você proteja seus arquivos de feed hospedados com a autenticação básica.
Como o Google sabe quais arquivos precisam ser buscados Listagem de diretório de todos os arquivos no bucket. Listagem de diretório de todos os arquivos no bucket. URLs individuais de arquivos listados no sitemap.
Como o Google sabe que os arquivos estão prontos para extração Depois de terminar de gerar os feeds de dados, atualize o arquivo marker.txt com o carimbo de data/hora mais recente. Depois de terminar de gerar os feeds de dados, atualize o arquivo marker.txt com o carimbo de data/hora mais recente. Depois de terminar de gerar os feeds de dados, atualize o cabeçalho de resposta last-modified do sitemap.xml com o carimbo de data/hora mais recente.
Limites de arquivo

Número máximo de arquivos: 100.000.

Você precisa ter menos de 100.000 arquivos no seu bucket do Amazon S3.

Número máximo de arquivos: 100.000.

Você precisa ter menos de 100.000 arquivos no total no seu bucket do Google Cloud Storage.

Número máximo de arquivos: 100.000.

O número de caminhos de arquivo no arquivo XML do sitemap precisa ser menor que 100.000.

Conectar seus feeds de dados para ingestão em lote

Depois de hospedar seus feeds, conecte-os ao projeto no Centro de ações. A configuração inicial dos feeds de produção é feita na página Tarefas de integração. Mais tarde, a configuração dos feeds de produção e sandbox pode ser atualizada na página Configuração > Feeds a qualquer momento por qualquer usuário do portal com uma função administrativa. O ambiente sandbox é usado para desenvolvimento e testes, enquanto os feeds de produção são mostrados aos usuários.

Se você hospedar seus feeds de dados com o Amazon S3

  1. No Centro de ações, acesse Configuração > Feeds.
  2. Clique em Editar e preencha o formulário Atualizar feed:

    • Método de envio do feed:defina como Amazon S3.
    • Arquivo de marcador:informe o URL do arquivo marker.txt.
    • Arquivos de dados:forneça o URL do bucket do S3 que contém os feeds de dados.
    • ID de acesso:insira o ID da chave de acesso do IAM com permissões para ler os recursos do S3.
    • Chave de acesso:insira a chave de acesso secreta do IAM com permissões para ler os recursos do S3.
  3. Clique em Enviar.
  4. Depois de uma a duas horas, verifique se a transferência em lote está extraindo os arquivos do feed.

Se você hospedar seus feeds de dados com o Google Cloud Storage

  1. No Centro de ações, acesse Configuração > Feeds.
  2. Clique em Editar e preencha o formulário Atualizar feed:

    • Método de envio do feed:defina como Google Cloud Storage.
    • Arquivo de marcador:informe o URL do arquivo marker.txt.
    • Arquivos de dados:forneça o URL do bucket do GCS que contém os feeds de dados.
  3. Clique em Enviar.
  4. Uma conta de serviço é criada para acessar seu bucket do GCS. O nome da conta pode ser encontrado em Configuração > Feeds depois que as tarefas de integração forem concluídas. Essa conta de serviço precisa do papel "Leitor de objetos legados do Storage". Esse papel pode ser concedido à conta de serviço na página do IAM no console do Google Cloud.
  5. Depois de uma ou duas horas, verifique se a transferência em lote está extraindo os arquivos do feed.

Se você hospedar seus feeds de dados com HTTPS

  1. No Centro de ações, acesse Configuração > Feeds.
  2. Clique em Editar e preencha o formulário Atualizar feed:

    • Método de envio do feed:defina como HTTPS.
    • Arquivo do sitemap:forneça o URL do arquivo sitemap.xml.
    • Nome de usuário:insira as credenciais do nome de usuário para acessar o servidor HTTPS.
    • Senha:insira a senha para acessar o servidor HTTPS.
  3. Clique em Enviar.
  4. Depois de uma a duas horas, verifique se a transferência em lote está extraindo os arquivos do feed.

Exemplos de caminhos

A tabela a seguir contém exemplos de caminhos para cada uma das opções de hospedagem:

Amazon S3 Google Cloud Storage HTTPS com um sitemap
Caminho s3://foorestaurant-google-feed-sandbox/ gs://foorestaurant-google-feed-sandbox/ https://sandbox-foorestaurant.com/sitemap.xml
Arquivo de marcador s3://foorestaurant-google-feed-sandbox/marker.txt gs://foorestaurant-google-feed-sandbox/marker.txt Não relevante

Sitemaps para hospedagem HTTPS

Siga as diretrizes abaixo ao definir sitemaps:

  • Os links no sitemap precisam apontar para os arquivos.
  • Se o sitemap incluir referências a um provedor de nuvem em vez do seu próprio nome de domínio, verifique se o início dos URLs, como https://www.yourcloudprovider.com/your_id, são estáveis e exclusivos do seu job em lote.
  • Não faça o upload de sitemaps parciais (como no caso de um upload parcial de dados). Isso faz com que o Google ingira apenas os arquivos no sitemap, o que faz com que os níveis de inventário caiam e pode resultar no bloqueio da ingestão do feed.
  • Verifique se os caminhos para os arquivos referenciados no sitemap não mudaram. Por exemplo, não tenha a referência do sitemap https://www.yourcloudprovider.com/your_id/10000.json hoje, mas depois faça referência a https://www.yourcloudprovider.com/your_id/20000.json amanhã.
Exemplo de sitemap

Confira um exemplo de arquivo sitemap.xml que serve arquivos de feed de dados:

Exemplo 1: entidades agrupadas por comerciantes (recomendado).

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>

Exemplo 2: entidades agrupadas por tipos.

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>

Atualizar seus feeds de dados

Depois que os feeds de dados são conectados, o Google verifica atualizações uma vez por hora, mas só processamos todos os feeds de dados quando os arquivos marker.txt ou sitemap.xml são modificados. Esperamos que você atualize seus feeds de dados uma vez por dia para evitar que o inventário fique desatualizado.

Para especificar que os feeds de dados foram modificados e estão prontos para ingestão em lote, atualize o campo de metadados do objeto last-modified do arquivo marker.txt (para GCP e S3) ou o cabeçalho de resposta last-modified do arquivo sitemap.xml. O Google usa esses valores para determinar a atualidade de um feed de dados.

Enquanto o feed em lote está sendo transferido,

  • Novas entidades que não existem no seu inventário de pedidos de ponta a ponta e não têm erros seriam inseridas.
  • As entidades já presentes no inventário que não têm erros na ingestão e têm um dateModified mais recente do que a entrada atual ou, no caso de não ter um dateModified, o horário de início da ingestão do feed é mais recente do que a entrada atual, elas seriam atualizadas. Caso contrário, elas seriam marcadas como desatualizadas.
  • As entidades que faziam parte de um feed anterior e não estão mais incluídas no feed em lote que está sendo processado serão excluídas, desde que não haja erros no nível do arquivo no feed.

O carimbo de data/hora ou o cabeçalho de resposta last-modified só precisam ser atualizados depois que todos os arquivos de feed de dados forem gerados e atualizados. Limite os jobs em lote que atualizam seus feeds de dados para serem executados apenas uma vez por dia. Como alternativa, deixe um intervalo de pelo menos três horas entre cada job em lote. Se você não seguir essas etapas, o Google poderá buscar arquivos desatualizados.