Moim celem jest stworzenie szybkiej, niezawodnej i zautomatyzowanej metody dostępu do danych tylko do odczytu zawartych w kilku bardzo dużych źródłach danych o płaskich plikach ( CSV , stała szerokość i dokumenty XML) za pomocą Drupal 7, do których można uzyskać zapytanie przy użyciu Widoku 3 moduł. Wolałbym używać już dostępnych modułów, ale zbudowanie niestandardowego modułu jest również opcją.
Aby wykluczyć moduły i metody nieodpowiednie dla tego zadania, oto statystyki plików, z którymi pracuję:
- Roczny import: 8 500 000 linii pliku CSV . (Oczyszczane i ładowane co roku. Ma klucz podstawowy.)
- Cotygodniowy import: plik o stałej szerokości 350 000 linii. (Oczyszczane i ładowane co tydzień. Brak klucza podstawowego .)
- Import godzinowy: 3400 linii pliku CSV . (Chciałbym aktualizować i synchronizować tak często, jak to możliwe, ale nie częściej niż co 20 minut. Ma klucz podstawowy)
- Codzienny import: plik XML 200 pozycji. (Codziennie czyszczone i ładowane ponownie. Ma klucz podstawowy)
Konwersja między tymi trzema formatami nie stanowi problemu i można tego dokonać, jeśli poprawi to wydajność importu lub umożliwi udostępnienie lepszych narzędzi. ( AWK dla stałej szerokości do CSV itp.) Automatyzacja pobierania i konwersji jest łatwa dzięki skryptom cron i sh , ale nadal wymaga automatyzacji integracji Drupal 7. Korzystanie z tabel niestandardowych jest również możliwe, o ile vews mogą odwoływać się do danych za pomocą relacji.
Jaka byłaby najlepsza praktyka do osiągnięcia tego rodzaju integracji danych z Drupal 7? Czy pomijam również ważne szczegóły dotyczące danych lub tego, co próbuję osiągnąć?
Oto kilka projektów, nad którymi obecnie szukam rozwiązania. Chciałbym rozwinąć tę kwestię, aby pomóc innym w podjęciu decyzji, którą wybrać drogę podczas importowania większych danych.
Importowanie danych do węzłów:
- Kanały (obecnie Alpha dla D7)
Kanały będą niezawodnie importować dane. Prędkość jest rozsądna w przypadku mniejszych źródeł danych, ale jest zbyt wolna w przypadku tabel o wielkości 300 000+.
Automatyzacja dostępna za pomocą cron i Job Scheduler (obecnie Alpha dla D7).
Brak dostępu do indeksu lub unikalnego klucza w danych źródłowych utrudnia korzystanie z niego. Jest szybszy niż kanały, ale wciąż wolno importuje bardzo duże tabele.
Automatyzacja jest dostępna za pośrednictwem drush i cron.
Niestandardowe tabele zamiast węzłów
- Moduł danych (obecnie Alpha dla D7)
Moduł danych wygląda bardzo obiecujące, ale jest bardzo buggy dla D7 w tej chwili. Wymagania dotyczące automatyzacji i prędkości importu można łatwo spełnić przy użyciu danych, ale brakuje niezawodności. Integracja widoki (link jest na D6) wygląda bardzo obiecująco.
- Kreator tabel (niedostępny dla D7)
Dodano to w celach informacyjnych. W tym momencie nie ma kandydata na D7, ale mógłby służyć jako punkt wyjścia dla niestandardowego modułu.
- Schemat widoków (porzucony, tylko D6)
Dodano to w celach informacyjnych. Wygląda na to, że został zaabsorbowany przez Kreatora tabel w Drupal 6. Ponownie, dodano tylko w celach informacyjnych.
- Importer (RC2 dla D7)
Wydaje się, że wymaga integracji Kreatora tabel (tylko D6) do integracji widoków . Dodano w celach informacyjnych, ale nie spełnia wymagań Widoku.
@MPD - Dodano „Tabele niestandardowe” jako możliwe rozwiązanie i rozbudowano moduły. Dziękuję za ten dodatek.