Моя мета - створити швидкий, надійний та автоматизований метод доступу до даних лише для читання, що містяться в декількох дуже великих джерелах даних з плоскими файлами ( CSV s, фіксованою шириною та XML-документами) за допомогою Drupal 7, до якого можна попросити використовувати Views 3 модуль. Я вважаю за краще використовувати вже доступні модулі, але створення індивідуального модуля також є варіантом.
Щоб виключити модулі та методи, не підходящі до завдання, ось статистика файлів, з якими я працюю:
- Щорічний імпорт: 8 500 000 рядкових файлів CSV . (Очищено та перезавантажено щорічно. Має первинний ключ.)
- Щотижневий імпорт: файл з фіксованою шириною 350 000 рядків. (Очищено та перезавантажено щотижня. Без первинного ключа .)
- Погодинний імпорт: 3,400 рядковий файл CSV . (Хочеться оновлювати та синхронізувати якомога частіше, але не більше кожні 20 хв. Має первинний ключ)
- Щоденний імпорт: XML-файл із 200 позицій. (Чистять і перезавантажують щодня. Має первинний ключ)
Перетворення між трьома форматами не є проблемою, і це може бути здійснено, якщо це покращить ефективність імпорту або дозволить отримати кращі інструменти. ( AWK для фіксованої ширини до CSV тощо). Автоматизація пошуку та перетворення легко за допомогою cron та sh- скриптів, але все ж потрібно автоматизувати інтеграцію Drupal 7. Використання користувальницьких таблиць також можливе, якщо vews може посилатися на дані, використовуючи зв'язки.
Яка найкраща практика для інтеграції такого типу даних з Drupal 7? Крім того, я залишаю якісь важливі подробиці щодо даних або того, що я намагаюся виконати?
Ось декілька проектів, які я зараз розглядаю, щоб знайти рішення. Я хотів би розширити цю проблему, щоб допомогти іншим вирішити, яким маршрутом скористатися під час роботи з більшим імпортом даних.
Імпорт даних у вузли:
- Канали (зараз Альфа для D7)
Канали надійно імпортуватимуть дані. Швидкість розумна для менших джерел даних, але занадто повільна для таблиць 300k +.
Доступна автоматизація за допомогою програми cron та Job Scheduler (в даний час Alpha для D7).
Якщо у вихідних даних немає індексу чи унікального ключа, це ускладнює використання. Це швидше, ніж канали, але все ж повільно імпортувати дуже великі таблиці.
Автоматизація доступна за допомогою барабану та крона.
Спеціальні таблиці замість вузлів
- Модуль даних (в даний час альфа для D7)
Модуль даних виглядає дуже перспективно, але на сьогоднішній день дуже невдалий для D7. Вимоги до автоматизації та швидкості імпорту легко було б виконати за допомогою даних, але надійності бракує. Інтеграція переглядів (посилання на D6) виглядає дуже перспективним.
- Майстер таблиці (недоступний для D7)
Додано це для довідки. Наразі немає кандидата на D7, але він може послужити відправною точкою для спеціального модуля.
- Схема переглядів (покинута, лише D6)
Додано це для довідки. Це, здається, було поглинене Майстром таблиці в Drupal 6. Знову ж, додано лише для довідки.
- Імпортер (RC2 для D7)
Здається, потрібен майстер таблиці (лише D6) для інтеграції переглядів . Додано для довідки, але не відповідає вимогам "Перегляд".
@MPD - Додано "Спеціальні таблиці" як можливе рішення та розширені модулі. Дякую за це доповнення.