Zalety ramki danych pand do regularnej relacyjnej bazy danych


13

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.


5
pandy nie są magazynem danych. Wyłącz komputer, a ramki danych nie będzie. pandy służą do mungowania w pamięci. Co oznacza, że ​​jeśli nie zmieści się w pamięci, nie będzie działać. Ale ma starszego brata o imieniu Spark, więc to nie jest wielka sprawa. Starszy brat faktycznie obsługuje optymalizację SQL i zapytań. Zobacz także pandas.pydata.org/pandas-docs/stable/comparison_with_sql.html
Emre

Odpowiedzi:


8

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:

  • Pandy nie przechowują danych. Ma nawet (powolną) funkcję o nazwie TO_SQL, która utrwala ramkę danych pandy w tabeli RDBMS.
  • Pandy poradzą sobie tylko z wynikami, które mieszczą się w pamięci, którą łatwo wypełnić. Możesz albo użyć dask, aby obejść ten problem, albo możesz pracować na danych w RDBMS (który używa różnego rodzaju sztuczek, takich jak przestrzeń tymczasowa), aby operować na danych przekraczających pamięć RAM.

2

Z pand ( strona główna )

Biblioteka analizy danych w języku Python¶

panda jest biblioteką na licencji BSD typu open source, zapewniającą wysokowydajne, łatwe w użyciu struktury danych i narzędzia analizy danych dla języka programowania Python.

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

jest podstawowym pakietem do naukowego obliczania za pomocą Pythona. Zawiera między innymi:

  • potężny obiekt tablicy N-wymiarowej
  • wyrafinowane funkcje (nadawcze)
  • narzędzia do integracji C / C ++ i kodu Fortran
  • przydatne funkcje algebry liniowej, transformaty Fouriera i liczb losowych

2

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.


2

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.


0

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.