Общий SFTP

На SFTP-сервер общего фида можно загружать фиды разных типов (по одному на среду). В этом руководстве рассказывается, как использовать общий SFTP-сервер, и приводятся ссылки на руководства по работе с фидами.

(Дополнительную информацию можно найти в разделе Экспорт фидов (сквозная интеграция) или Фиды (начальный уровень) документации).

Для работы с общим SFTP-сервером необходимо выполнить две отдельные загрузки:

  1. Файл дескриптора описывает тип фида, который вы будете загружать.
  2. Файлы фида – контент фида.

Структурирование поля дескриптора

Файл дескриптора загружается, чтобы сообщить нашей системе, какой тип фида вы загружаете. Это позволяет нам правильно проверять и обрабатывать фид. Файл дескриптора должен быть загружен до содержимого фида и соответствовать следующим требованиям к названию:

  • Для файла дескриптора необходимо использовать расширение .filesetdesc.json.
  • Название каждого файла дескриптора должно быть уникальным и не может использоваться повторно в разных загрузках. Рекомендуем включить в название файла временную метку создания и название фида.
    • Пример: offers_1524606581.filesetdesc.json.
  • В каждом файле описания должны быть перечислены все файлы данных из последнего фида с соответствующим названием.
message FilesetDescriptor {
  option features.(pb.java).nest_in_file_class = YES;

  // The timestamp at which this feed was generated, in Unix time format
  // (seconds since the epoch). (required)
  int64 generation_timestamp = 1;

  // Identifies the name of this feed. (required)
  string name = 2 [features.(pb.cpp).string_type = STRING];

  // Paths (relative to the dropbox root) specifying data files included in this
  // feed. (required)
  repeated string data_file = 3 [features.(pb.cpp).string_type = STRING];
}

Возможные значения поля name:

  • reservewithgoogle.entity
  • google.offer

Ниже приведен пример файла дескриптора JSON для фида специальных предложений с двумя фрагментами:

{
  "generation_timestamp": 1524606581,
  "name": "google.offer",
  "data_file": [
    "offers_1524606581_1.json",
    "offers_1524606581_2.json"
  ]
}

Структурирование контента фида

После загрузки файла дескриптора вы загрузите все файлы фида для типа данных фида, соответствующего файлу конфигурации фида, названному вашим файлом дескриптора. Названия файлов и пути к ним (относительно сервера SFTP) должны точно совпадать с указанными в поле data_file. Если какой-либо файл отсутствует, неправильно назван или загружен в другое место, весь фид не будет обработан.

Содержимое этих файлов должно соответствовать спецификации фида, указанной в файле дескриптора.

Название каждого файла фида должно быть уникальным и не может использоваться повторно. Рекомендуем включать в название файла временную метку создания и номер фрагмента (инкрементный идентификатор).

  • Пример: offers_1524606581_1.json.

Размер файлов фида и частота загрузки

  • Размер файла фида не должен превышать 200 МБ (после сжатия).
  • Размер каждого распакованного файла данных не должен превышать 2 ГБ.
  • В большинстве случаев достаточно одного сегмента. Используйте как можно меньше сегментов. В одном фиде может быть не более 1000 сегментов.
  • Отдельные записи, отправленные в одном фрагменте, не обязательно должны отправляться в том же фрагменте в будущих фидах.
  • Для повышения производительности разделите данные поровну между сегментами, чтобы все файлы сегментов были примерно одинакового размера.
  • При необходимости используйте gzip для сжатия фидов. но для каждого фрагмента фида по отдельности.

Устранение неполадок и отладка

Загрузив файлы дескриптора и фида, перейдите в Ingestion Viewer (документация) на партнерском портале (Передача данных > История), чтобы отслеживать ход передачи данных.

Найдите фид по значению name, которое вы указали в файле описания в столбце "Название фида".

После того как фид будет загружен (статус Success или Fail), вы можете нажать на строку с ним, чтобы посмотреть подробные сведения об ошибках и предупреждениях.