W Data Science wielu wydaje się używać ramek danych pand jako magazynu danych. Jakie są cechy pand, które czynią go lepszym magazynem danych w porównaniu ze zwykłymi relacyjnymi bazami danych, takimi jak MySQL , które są używane do przechowywania danych w wielu innych dziedzinach programowania?
Podczas gdy pandy zapewniają przydatne funkcje do eksploracji danych, nie można używać SQL i tracisz funkcje takie jak optymalizacja zapytań lub ograniczenie dostępu.
Odpowiedzi:
Myślę, że przesłanka twojego pytania ma problem. Pandy nie są „magazynem danych”, tak jak RDBMS. Pandas to biblioteka Pythona do manipulowania danymi, które zmieszczą się w pamięci. Niedogodności:
źródło
Z pand ( strona główna )
Podczas gdy pandy mogą z pewnością uzyskiwać dostęp do danych za pośrednictwem SQL lub kilku innych metod przechowywania danych, jego głównym celem jest ułatwienie korzystania z Pythona do analizy danych.
W tym celu pandy mają różne metody, które pozwalają na pewne operacje algebry relacyjnej, które można porównać do SQL.
Pandy zapewniają również łatwy dostęp do NumPy , który
źródło
Oprócz zaakceptowanej odpowiedzi:
Relacyjne bazy danych mają dużą liczbę bajtów narzutu na wiersz (przykład: to pytanie ), który jest wykorzystywany do prowadzenia ksiąg rachunkowych, odczytywania wartości zerowych od wartości zerowych, zapewniając standardy takie jak ACID . Za każdym razem, gdy czytasz / piszesz kolumnę, odczytywanych będzie nie tylko kilka bajtów reprezentujących wartość tej kolumny, ale również te bajty księgowości będą dostępne i ewentualnie zaktualizowane.
W przeciwieństwie do tego pandy (także R data.table) bardziej przypominają magazyn kolumn w pamięci. Jedna kolumna to po prostu tablica wartości i możesz korzystać z szybkich, wektoryzowanych operacji / list, które mają dostęp tylko do wartości, których naprawdę potrzebujesz. Tyle, że w przypadku tabel z kilkoma prymitywnymi kolumnami relacyjne bazy danych są wielokrotnie wolniejsze w wielu przypadkach użycia danych.
źródło
Pandas to narzędzie do przechowywania danych w pamięci. Pozwala to bardzo szybko wykonywać bardzo szybkie obliczenia dużych ilości danych.
SQL (zwykle) stale przechowuje dane i jest bazą danych. Możliwe jest również uruchomienie bazy danych SQL w pamięci, która może być szybsza niż używanie pand, takich jak SQLite.
źródło
SQL pozwala na utrwalanie i wykonywanie wielu różnych transakcji relacji i zawsze jest dostępny dla wielu różnych zastosowań. Zasadniczo jedno źródło prawdy lub miejsce, do którego należy się udać. Na pewno jest nad głową. Jednak niektóre analizy mogą być bardzo skomplikowane i wymagają znacznej liczby operacji opartych na zestawie, które mogą bardzo szybko zamienić nawet mały zestaw danych w duży. Miałem procesy danych, które mają ponad 2000 zapytań, które przetwarzają terabajty w mniej niż 5 minut i mogą zdobyć miliardy rekordów dla modelu predykcyjnego na końcu, a python i numpy ocenili ułamek zbioru danych w czasie 10x jako relacyjny magazyn danych i podawaj do warstwy prezentacji.
Dodatkowy punkt, jeśli robisz to w chmurze, upewnij się, że masz dynamiczne wystąpienie, które może skalować jego pamięć. W SQL chodzi o dysk i wystarczającą moc obliczeniową, aby zrobić to na czas.
Widzę wiele sposobów, dzięki którym mogą działać synergicznie. Wiele zadań związanych z nauką danych jest tym, do czego została zaprojektowana Panda. Niektóre zadania związane z analizą danych są tym, do czego zostały zaprojektowane RDB. Używaj obu w równowadze.
Chodzi o właściwe narzędzie do wykonania właściwej pracy.
źródło