Ưu điểm của khung dữ liệu gấu trúc đối với cơ sở dữ liệu quan hệ thông thường


13

Trong Khoa học dữ liệu, nhiều người dường như đang sử dụng các tệp dữ liệu gấu trúc làm kho dữ liệu. Các tính năng của gấu trúc làm cho nó trở thành một kho dữ liệu vượt trội so với các cơ sở dữ liệu quan hệ thông thường như MySQL , được sử dụng để lưu trữ dữ liệu trong nhiều lĩnh vực lập trình khác?

Mặc dù gấu trúc cung cấp một số chức năng hữu ích để khám phá dữ liệu, bạn không thể sử dụng SQL và bạn mất các tính năng như tối ưu hóa truy vấn hoặc hạn chế truy cập.


5
gấu trúc không phải là một kho dữ liệu. Tắt máy tính của bạn và khung dữ liệu của bạn sẽ không ở đó. gấu trúc là để munging trong bộ nhớ. Điều đó có nghĩa là nếu nó không vừa trong bộ nhớ thì nó sẽ không hoạt động. Nhưng nó có một người anh lớn tên là Spark nên đó không phải là vấn đề lớn. Người anh lớn thực tế hỗ trợ SQL và tối ưu hóa truy vấn. Xem thêm pandas.pydata.org/pandas-docs/urdy/comparison_with_sql.html
Emre

Câu trả lời:


8

Tôi nghĩ tiền đề của câu hỏi của bạn có vấn đề. Pandas không phải là "kho dữ liệu" theo cách của RDBMS. Pandas là một thư viện Python để thao tác dữ liệu sẽ phù hợp với bộ nhớ. Nhược điểm:

  • Gấu trúc không tồn tại dữ liệu. Nó thậm chí còn có một hàm (chậm) được gọi là TO_Query sẽ duy trì khung dữ liệu gấu trúc của bạn thành bảng RDBMS.
  • Gấu trúc sẽ chỉ xử lý các kết quả phù hợp với bộ nhớ, dễ dàng điền vào. Bạn có thể sử dụng dask để xử lý xung quanh đó hoặc bạn có thể làm việc với dữ liệu trong RDBMS (sử dụng tất cả các loại thủ thuật như không gian tạm thời) để hoạt động trên dữ liệu vượt quá RAM.

2

Từ gấu trúc ( Trang chính )

Thư viện phân tích dữ liệu Python¶

pandas là một thư viện mã nguồn mở BSD cung cấp các cấu trúc dữ liệu và các công cụ phân tích dữ liệu hiệu suất cao, dễ sử dụng cho ngôn ngữ lập trình Python.

Mặc dù gấu trúc chắc chắn có thể truy cập dữ liệu qua SQL hoặc từ một số phương thức lưu trữ dữ liệu khác, mục đích chính của nó là giúp dễ dàng hơn khi sử dụng Python để phân tích dữ liệu.

Cuối cùng, gấu trúc có nhiều phương thức khác nhau cho phép một số phép toán đại số quan hệ có thể so sánh với SQL.

Ngoài ra Pandas cung cấp quyền truy cập dễ dàng vào NumPy , trong đó

là gói cơ bản cho tính toán khoa học với Python. Nó chứa trong số những thứ khác:

  • một đối tượng mảng N chiều mạnh mẽ
  • chức năng (phát sóng) tinh vi
  • công cụ tích hợp mã C / C ++ và Fortran
  • đại số tuyến tính hữu ích, biến đổi Fourier và khả năng số ngẫu nhiên

2

Ngoài câu trả lời được chấp nhận:

Cơ sở dữ liệu quan hệ có số lượng lớn byte trên mỗi hàng (ví dụ: câu hỏi này ), được sử dụng để ghi sổ, nói null từ không null, đảm bảo các tiêu chuẩn như ACID . Mỗi khi bạn đọc / ghi một cột, không chỉ vài byte biểu thị giá trị của cột này sẽ được đọc, mà cả các byte kế toán này sẽ được truy cập và có thể được cập nhật.

Ngược lại, gấu trúc (cũng là R data.table) giống như một cửa hàng cột trong bộ nhớ. Một cột chỉ là một mảng các giá trị và bạn có thể sử dụng các thao tác được liệt kê nhanh chóng / liệt kê danh sách chỉ truy cập các giá trị mà bạn thực sự cần. Chỉ là đối với các bảng có ít cột nguyên thủy làm cho cơ sở dữ liệu quan hệ chậm hơn nhiều lần đối với nhiều trường hợp sử dụng khoa học dữ liệu.


2

Pandas là một công cụ lưu trữ dữ liệu trong bộ nhớ. Điều này cho phép bạn thực hiện các phép tính rất nhanh trên một lượng lớn dữ liệu rất nhanh.

SQL (thường) lưu trữ dữ liệu liên tục và là một cơ sở dữ liệu. Cũng có thể chạy db db trong bộ nhớ có thể nhanh hơn sử dụng gấu trúc, chẳng hạn như SQLite.


0

SQL cho phép bạn kiên trì và thực hiện nhiều giao dịch quan hệ khác nhau và luôn có sẵn nó cho nhiều mục đích sử dụng khác nhau. Chủ yếu là một nguồn của sự thật hoặc nơi để đi. Có trên đầu cho chắc chắn. Tuy nhiên, một số phân tích có thể rất phức tạp và đòi hỏi số lượng đáng kể các thao tác dựa trên tập hợp có thể biến ngay cả một tập dữ liệu nhỏ thành một tập lớn rất nhanh. Tôi đã có các quy trình dữ liệu có hơn 2000 truy vấn xử lý terabyte trong chưa đầy 5 phút và có thể ghi được hàng tỷ bản ghi cho một mô hình dự đoán ở cuối và python và numpy đã ghi một phần của tập dữ liệu trong 10 lần dưới dạng lưu trữ dữ liệu quan hệ và phục vụ nó lên đến một lớp trình bày.

Một điểm bổ sung, nếu thực hiện điều này trong đám mây, hãy đảm bảo bạn có một thể hiện động có thể mở rộng bộ nhớ của nó. Với SQL, tất cả là về việc có đĩa và tính toán đủ để hoàn thành công việc một cách kịp thời.

Tôi thấy nhiều cách mà họ có thể làm việc với nhau. Nhiều công việc khoa học dữ liệu là những gì Pandas được thiết kế để làm. Một số công việc khoa học dữ liệu là những gì RDB được thiết kế để làm. Sử dụng cả hai trong sự cân bằng.

Đó là tất cả về công cụ phù hợp để làm công việc đúng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.