Моя цель - создать быстрый, надежный и автоматизированный метод доступа к данным только для чтения, содержащимся в нескольких очень больших источниках данных в виде плоских файлов ( CSV, документы с фиксированной шириной и XML), с использованием Drupal 7, к которым можно обращаться с помощью Views 3. модуль. Я бы предпочел использовать уже имеющиеся модули, но также возможно создание собственного модуля.
Чтобы помочь исключить модули и методы, не подходящие для этой задачи, вот статистика по файлам, с которыми я работаю:
- Годовой импорт: 8 500 000 строк файла CSV . (Чистится и перезагружается ежегодно. Имеет первичный ключ.)
- Еженедельный импорт: файл с фиксированной шириной 350 000 строк. (Чистится и перезагружается еженедельно. Нет первичного ключа .)
- Почасовой импорт: 3400 строк CSV- файла. (Хотел бы обновлять и синхронизировать как можно чаще, но не чаще, чем каждые 20 мин. Имеет первичный ключ)
- Ежедневный импорт: 200 элементов XML-файла. (Очищается и перезагружается ежедневно. Имеет первичный ключ)
Преобразование между этими тремя форматами не является проблемой и может быть выполнено, если это улучшит производительность импорта или позволит сделать лучшие инструменты доступными. ( AWK для фиксированной ширины в CSV и т. Д.) Автоматизация поиска и преобразования проста с помощью сценариев cron и sh , но все же необходимо автоматизировать интеграцию с Drupal 7. Использование пользовательских таблиц также возможно, если vews может ссылаться на данные, используя отношения.
Какова была бы наилучшая практика для интеграции этого типа данных с Drupal 7? Кроме того, я пропускаю какие-либо важные детали относительно данных или что я пытаюсь достичь?
Вот несколько проектов, которые я сейчас ищу, чтобы найти решение. Я хотел бы подробнее остановиться на этом, чтобы помочь другим решить, какой маршрут выбрать при работе с большими объемами импорта данных.
Импорт данных в узлы:
- Feeds (в настоящее время Alpha для D7)
Ленты будут импортировать данные надежно. Скорость приемлема для небольших источников данных, но слишком медленная для таблиц 300k +.
Автоматизация доступна с использованием cron и Job Scheduler (в настоящее время Alpha для D7).
Отсутствие индекса или уникального ключа в исходных данных затрудняет использование. Это быстрее, чем фиды, но все же медленно импортирует очень большие таблицы.
Автоматизация доступна через drush и cron.
Пользовательские таблицы вместо узлов
- Модуль данных (в настоящее время Alpha для D7)
Модуль Data выглядит очень многообещающе, но на данный момент он очень глючит для D7. Требования к автоматизации и скорости импорта могут быть легко выполнены с использованием данных, но их надежность недостаточна. Интеграция просмотров (ссылка на D6) выглядит очень перспективным.
- Мастер таблиц (Недоступно для D7)
Добавил это для справки. На данный момент нет кандидата в D7, но он может служить отправной точкой для пользовательского модуля.
- Схема видов (Заброшенный, только D6)
Добавил это для справки. Кажется, это было поглощено Table Wizard в Drupal 6. Опять же, добавлено только для справки.
- Импортер (RC2 для D7)
Кажется, требуется Мастер таблиц (только D6) для Views интеграции. Добавлено для справки, но не соответствует требованию Views.
@MPD - Добавлены «Пользовательские таблицы» в качестве возможного решения и расширены модули. Спасибо за это дополнение.