Mặc dù nhiều người gác cổng tranh luận liệu một người có thực sự là nhà phát triển phần mềm hay không nếu họ không viết mã bằng ngôn ngữ khó hơn Python, nhưng nó vẫn tồn tại ở khắp mọi nơi
Nó được sử dụng để tự động hóa, quản lý trang web, phân tích dữ liệu và xử lý dữ liệu lớn
Khi dữ liệu phát triển, cách chúng ta quản lý dữ liệu ngày càng được điều chỉnh tốt hơn
Chúng tôi không bị giới hạn chỉ sử dụng cơ sở dữ liệu quan hệ nữa
Điều đó cũng có nghĩa là hiện có nhiều công cụ hơn để tương tác với các hệ thống mới này, như Kafka, Hadoop [cụ thể hơn là HBase], Spark, BigQuery và Redshift [có thể kể tên một số]
Mỗi hệ thống này tận dụng các khái niệm như phân phối, kiến trúc cột và truyền dữ liệu để cung cấp thông tin cho người dùng cuối nhanh hơn
Nhu cầu về thông tin nhanh hơn, cập nhật hơn sẽ thúc đẩy nhu cầu về kỹ sư dữ liệu và kỹ sư phần mềm sử dụng các công cụ này
Đó là lý do tại sao chúng tôi muốn cung cấp phần giới thiệu nhanh về một số thư viện Python có thể giúp ích cho bạn
truy vấn lớn
Google BigQuery là kho doanh nghiệp rất phổ biến được xây dựng với sự kết hợp của Google Cloud Platform và Bigtable
Dịch vụ đám mây này hoạt động hiệu quả với mọi kích cỡ dữ liệu và thực hiện các truy vấn phức tạp trong vài giây
BigQuery là một dịch vụ web RESTful cho phép các nhà phát triển thực hiện phân tích tương tác trên các tập dữ liệu khổng lồ kết hợp với Google Cloud Platform. Hãy xem một ví dụ mà tôi tổng hợp trong một phần khác ở đây
Ví dụ này cho bạn thấy cách bạn có thể kết nối với BigQuery, sau đó bắt đầu lấy thông tin về các bảng và tập dữ liệu mà bạn sẽ tương tác
Trong trường hợp này, tập dữ liệu Medicare là tập dữ liệu nguồn mở mà bất kỳ ai cũng có thể truy cập
Một điểm khác về BigQuery là nó hoạt động trên Bigtable. Điều quan trọng là phải hiểu kho này không phải là cơ sở dữ liệu giao dịch. Do đó, nó không thể được coi là cơ sở dữ liệu xử lý giao dịch trực tuyến [OLTP]. Nó được thiết kế đặc biệt cho dữ liệu lớn. Do đó, nó hoạt động phù hợp với việc xử lý các tập dữ liệu có kích thước petabyte
Dịch chuyển đỏ và đôi khi là S3
Tiếp theo, chúng ta có Redshift và S3 phổ biến của Amazon. Amazon S3 về cơ bản là một dịch vụ lưu trữ được sử dụng để lưu trữ và truy xuất lượng dữ liệu khổng lồ từ mọi nơi trên internet. Với dịch vụ này, bạn chỉ trả tiền cho dung lượng lưu trữ mà bạn thực sự sử dụng. Mặt khác, Redshift là một kho dữ liệu được quản lý hoàn toàn, xử lý dữ liệu ở quy mô petabyte một cách hiệu quả. Dịch vụ này cung cấp khả năng truy vấn nhanh hơn bằng các công cụ SQL và BI
Cùng với nhau, Amazon Redshift và S3 hoạt động vì dữ liệu như một sự kết hợp mạnh mẽ. Lượng dữ liệu khổng lồ có thể được bơm vào kho Redshift bằng S3. Công cụ mạnh mẽ này khi được mã hóa bằng Python sẽ trở nên rất thuận tiện cho các nhà phát triển. Chúng ta hãy xem một “Xin chào, Thế giới” đơn giản. ” ví dụ để tham khảo
Kịch bản này là một kết nối cơ bản. Chọn bằng cách sử dụng psycopg2
Trong trường hợp này, tôi đã mượn mã jaychoo
Nhưng điều này, một lần nữa, cung cấp hướng dẫn nhanh về cách kết nối và sau đó lấy dữ liệu từ Redshift
PySpark
Được rồi, hãy rời khỏi thế giới của các hệ thống lưu trữ dữ liệu và hãy xem xét các công cụ giúp bạn xử lý dữ liệu nhanh chóng
Apache Spark là một khung nguồn mở rất phổ biến, thực hiện xử lý dữ liệu phân tán quy mô lớn. Nó cũng có thể được sử dụng cho máy học
Khung điện toán cụm này tập trung chủ yếu vào phân tích hợp lý hóa. Nó hoạt động với các bộ dữ liệu phân tán đàn hồi [RDD] và cho phép người dùng xử lý các tài nguyên được quản lý của các cụm tia lửa
Nó thường được sử dụng kết hợp với các sản phẩm Apache khác [như HBase]. Spark sẽ nhanh chóng xử lý dữ liệu và sau đó lưu trữ nó thành một bộ bảng trên các hệ thống lưu trữ dữ liệu khác
Để bắt đầu, hãy xem một ví dụ cơ bản về chạy tia lửa
Đôi khi cài đặt PySpark có thể là một thách thức, vì nó yêu cầu phụ thuộc. Bạn thấy nó chạy trên JVM và do đó, yêu cầu cơ sở hạ tầng cơ bản của Java để hoạt động. Tuy nhiên, trong thời đại mà Docker đang thịnh hành, việc thử nghiệm với PySpark trở nên thuận tiện hơn rất nhiều
Alibaba sử dụng PySpark để cá nhân hóa các trang web và cung cấp quảng cáo mục tiêu — cũng như nhiều tổ chức dựa trên dữ liệu lớn khác
Con trăn Kafka
Kafka là một hệ thống nhắn tin đăng ký xuất bản phân tán cho phép người dùng duy trì nguồn cấp tin nhắn trong cả chủ đề được sao chép và phân vùng
Các chủ đề này về cơ bản là nhật ký nhận dữ liệu từ máy khách và lưu trữ trên các phân vùng. Kafka Python được thiết kế để hoạt động như một ứng dụng khách Java chính thức được tích hợp với giao diện Python. Nó được sử dụng tốt nhất với các nhà môi giới mới và tương thích ngược với tất cả các phiên bản cũ của nó
KafkaNgười Tiêu Dùng
KafkaNhà sản xuất
Như bạn có thể thấy trong các ví dụ trên, mã hóa bằng Kafka Python yêu cầu cả người tiêu dùng và nhà sản xuất tham chiếu
Trong Kafka Python, chúng tôi có hai mặt này hoạt động song song. KafkaConsumer
về cơ bản là một trình tiêu dùng tin nhắn cấp cao có ý định hoạt động như một ứng dụng khách Java chính thức
Nó yêu cầu các nhà môi giới hỗ trợ API nhóm. KafkaProducer
là một trình tạo thông báo không đồng bộ, cũng có ý định hoạt động rất giống với các máy khách Java. Nhà sản xuất có thể được sử dụng trên các luồng mà không gặp sự cố, trong khi người tiêu dùng yêu cầu đa xử lý
Pydoop
Hãy giải quyết vấn đề này. Không, bản thân Hadoop không phải là một hệ thống lưu trữ dữ liệu. Hadoop thực sự có một số thành phần, bao gồm MapReduce và Hệ thống tệp phân tán Hadoop [HDFS]
Vì vậy, Pydoop nằm trong danh sách này, nhưng bạn sẽ cần ghép nối Hadoop với các lớp khác [chẳng hạn như Hive] để sắp xếp dữ liệu dễ dàng hơn
Pydoop là một giao diện Hadoop-Python cho phép bạn tương tác với API HDFS và viết các công việc MapReduce bằng mã Python thuần túy
Thư viện này cho phép nhà phát triển truy cập các chức năng MapReduce quan trọng, chẳng hạn như RecordReader
và Partitioner
mà không cần biết Java. Đối với ví dụ cuối cùng này, tôi nghĩ những người ở Edureka làm điều đó tốt hơn tôi có thể. Vì vậy, đây là một đoạn giới thiệu nhanh tuyệt vời
Bản thân Pydoop có thể hơi quá thấp đối với hầu hết các kỹ sư dữ liệu. Nhiều khả năng, hầu hết các bạn sẽ viết ETL trong Luồng không khí chạy trên các hệ thống này. Nhưng thật tuyệt khi ít nhất có được sự hiểu biết chung về những gì bạn đang làm việc
Vậy bạn sẽ bắt đầu từ đâu?
Quản lý dữ liệu lớn sẽ chỉ trở nên khó khăn hơn trong những năm tới
Do khả năng kết nối ngày càng tăng - IoT, tính toán được cải thiện, v.v. — cơn lũ dữ liệu đang đến với chúng ta sẽ tiếp tục tăng lên
Do đó, hiểu biết về một số hệ thống dữ liệu và thư viện mà bạn có thể sử dụng để tương tác với các hệ thống này là cần thiết nếu chúng ta muốn theo kịp