Stworzyliśmy aplikację sieci społecznościowej do celów eLearningu. To eksperymentalny projekt, nad którym pracujemy w naszym laboratorium. Przez pewien czas był używany w niektórych studiach przypadków, a dane w naszym relacyjnym DBMS (SQL Server 2008) stają się duże. To już kilka gigabajtów, a tabele są ze sobą ściśle powiązane. Wydajność jest nadal dobra, ale kiedy powinniśmy rozważyć inne opcje? Czy to kwestia wydajności?
nosql
relational-dbms
ePezhman
źródło
źródło
Odpowiedzi:
Kilka gigabajtów nie jest zbyt „ dużych ”. To bardziej przypomina normalny rozmiar korporacyjnej bazy danych. Tak długo, jak przekroczysz PK podczas dołączania do tabel, powinno to działać naprawdę dobrze, nawet w przyszłości (o ile nie dostaniesz TB danych dziennie).
Większość profesjonalistów pracujących w środowisku dużych zbiorów danych uważa > ~ 5 TB za początek terminu „duże zbiory danych”. Ale nawet wtedy nie zawsze jest to najlepszy sposób, aby po prostu zainstalować następną najlepszą bazę danych nosql. Zawsze powinieneś pomyśleć o zadaniu, które chcesz zarchiwizować z danymi (agregowanie, czytanie, wyszukiwanie, wyszukiwanie, ...), aby znaleźć najlepsze narzędzia dla twojego problemu.
tzn. jeśli wykonujesz wiele wyszukiwań w swojej bazie danych, prawdopodobnie lepiej byłoby uruchomić instancję / klaster solr i od czasu do czasu zdenormalizować dane z DBMS, takiego jak Postgres lub SQL Server, i umieścić je w solr zamiast po prostu przenosić dane od sql do nosql pod względem trwałości i wydajności.
źródło
Aby odpowiedzieć na to pytanie, musisz odpowiedzieć na jaki kompromis możesz sobie pozwolić. RDBM implementuje ACID . Jest to kosztowne pod względem zasobów. Nie ma rozwiązań NoSQL, które są ACID. Zobacz twierdzenie CAP, aby zagłębić się w te idee.
Musisz więc zrozumieć każdy kompromis podany przez każde rozwiązanie i wybrać ten, który jest najbardziej odpowiedni dla twojego problemu.
źródło
Big Data tak naprawdę nie polega na tym, „jak duże to jest”.
Po pierwsze, kilka gigabajtów wcale nie jest duże, prawie nic. Więc nie przejmuj się, twój system będzie działał wydajnie przez pewien czas.
Następnie musisz pomyśleć o tym, jak wykorzystujesz swoje dane.
Jeśli Twoje aplikacje przechowują „funkcjonalne” dane, zasugeruję ci pozostanie przy SQL. Jeśli przechowujesz dane w celu ich późniejszego przeszukania lub wykonania raportów, a jeśli ta ilość danych może szybko wzrosnąć, zasugeruję duże zbiory danych. Moim zdaniem duże zbiory danych są przydatne, gdy mamy do czynienia z prawdziwymi danymi, które należy stale gromadzić i analizować.
źródło
Opublikowałem dość szczegółową odpowiedź na temat przepełnienia stosu dotyczącą tego, kiedy należy użyć bazy danych relacyjnej vs dokumentowej (lub NoSQL), tutaj:
Motywacje do korzystania z relacyjnej bazy danych / ORM lub bazy danych dokumentów / ODM
Streszczenie:
w przypadku drobiazgów korzystaj z narzędzi, które znasz
kilka gigabajtów to zdecydowanie małe rzeczy: nie robi się duże, dopóki nie jest zbyt duże, aby zmieścić się w jednym klastrze MySQL z rozsądną liczbą węzłów (16-32), co oznacza, że może 8-16 TB danych i kilka milionów transakcji na sekundę (lub bardziej konwencjonalna baza danych oparta na dyskach twardych z maksymalnie 100 TB danych i kilkoma tysiącami transakcji na sekundę).
jeśli utkniesz w innej bazie danych (nie w klastrze MySQL), skorzystaj z niej, dodając sprzęt FusionIO.
gdy masz dane większe niż kilka TB i szybsze niż tysiące transakcji na sekundę, to dobry moment, aby przyjrzeć się przejściu do logicznego dzielenia kodu aplikacji, a następnie na NoSQL.
Cassandra :)
źródło
Czy czas przejścia na NoSQL zależy od 2 rzeczy:
Bazy danych SQL wyróżniają się, gdy dane mają dobrą strukturę (np. Gdy można je modelować jako tabelę, arkusz kalkulacyjny Excel lub zestaw wierszy ze stałą liczbą kolumn). Również dobrze, gdy musisz wykonać wiele połączeń stolikowych (co brzmi jak ty).
Bazy danych NoSQL wyróżniają się, gdy dane są ustrukturyzowane poza parami klucz-wartość.
Pod względem wydajności musisz zadać sobie jedno pytanie: czy twoje obecne rozwiązanie SQL jest wolne ?
Jeśli nie, zastosuj zasadę „ IIABDFI ”.
źródło