Zastanawiałem się, czy istnieją jakieś dobre rozwiązania do rejestrowania danych w bazie danych NoSQL, a następnie konwersji ich na RDBMS?
Na przykład, jeśli chcesz szybko przechwycić niektóre dane, takie jak dzienniki sesji, ale chcesz później móc tworzyć na ich podstawie raporty.
Moja ulubiona baza danych to Postgres, więc jeśli Twoja odpowiedź jest odpowiednia w Postgres, byłoby świetnie.
Odpowiedzi:
Szybka odpowiedź - tak. Dzieje się cały czas.
Istnieje wiele dobrych rozwiązań. Jakie rozwiązania są już w twoim środowisku? Pomagam jednemu klientowi, który pobiera informacje o aktywności na swojej stronie internetowej / sesji z aplikacji internetowej, zapisuje je w xml, a następnie deserializuje ten xml do Hadoop. Następnie używają Hive na platformie Hadoop do tworzenia agregacji i faktów (łącząc te dane dziennika, aby odwoływać się do danych z ich witryny internetowej, które przechowują w bazie danych Postgres). Te agregacje i fakty są następnie ładowane do RDBMS (używają SQL Server, ze względu na bogatą analizę dostarczaną w stosie SQL Server).
Chciałbym zbadać Hadoop, spojrzeć na Hive, który jest silnikiem zapytań na górze Hadoop, który pozwala pisać deklaratywne zapytania, które bardzo przypominają SQL i są tłumaczone na zadania MapReduce za kulisami. Następnie spójrz na Sqoop, które jest kolejnym narzędziem z rodziny Hadoop, które pomaga w eksportowaniu / importowaniu danych.
http://hadoop.apache.org/ http://www.amazon.com/Hadoop-Definitive-Guide-Tom-White/dp/1449389732/ref=sr_1_1?s=books&ie=UTF8&qid=1319160463&sr=1-1 http : //www.cloudera.com/blog/2009/06/introducing-sqoop/ http://hive.apache.org/
Istnieją też inne opcje ...
źródło
Nie wszystkie NoSQL są takie same. Na przykład MongoDB ma bardzo dobre możliwości zapytań. bardzo łatwo jest pobierać dane, sortować dane w sposób przypominający SQL. Mówię więc, że nie powinieneś myśleć - SQL do raportowania, chyba że masz gotowe narzędzia, które oczywiście wymagają danych zgodnych z SQL. Niektóre inne NoSQL są nieco bardziej zaangażowane, jeśli chodzi o uzyskiwanie wyników podobnych do SQL z twojego sklepu, na przykład CouchDB, nie jest trywialne zdefiniowanie prostego zapytania typu klauzula gdzie. MongodDB - użyłem sterownika Python - jest bardzo prosty. Dlatego mniej ważne jest, aby martwić się o przeniesienie moich danych do sklepu relacyjnego.
źródło