Python gửi dữ liệu tới aws như thế nào?

Trong bài đăng này, chúng ta sẽ xem cách truy cập và truy vấn dữ liệu Amazon Redshift của bạn bằng Python. Chúng tôi làm theo hai bước trong quy trình này

  • Kết nối với phiên bản kho Redshift và tải dữ liệu bằng Python
  • Truy vấn dữ liệu và lưu trữ kết quả để phân tích

Vì Redshift tương thích với các cơ sở dữ liệu khác như PostgreSQL nên chúng tôi sử dụng thư viện psycopg của Python để truy cập và truy vấn dữ liệu từ Redshift. Sau đó, chúng tôi sẽ lưu trữ kết quả truy vấn dưới dạng khung dữ liệu trong gấu trúc bằng thư viện SQLAlchemy

Mục đích của bài tập này là tận dụng các kỹ thuật thống kê có sẵn trong Python để có được những hiểu biết hữu ích từ dữ liệu Redshift của bạn. Một số thông tin chi tiết mà bạn có thể nhận được bao gồm hiểu rõ hơn về hành vi sản phẩm của khách hàng, dự đoán tỷ lệ rời bỏ, v.v.

Chúng tôi cũng có một blog dành riêng để thao tác và truy vấn dữ liệu Google BigQuery của bạn bằng Python và R, trong trường hợp bạn quan tâm
Đối với bài đăng này, chúng tôi giả định rằng bạn đã tải dữ liệu trong phiên bản Redshift của mình. Trong trường hợp bạn chưa tải, cách tốt nhất để tải dữ liệu của bạn lên Redshift là tận dụng các công cụ Cơ sở hạ tầng dữ liệu khách hàng như RudderStack. Chúng cho phép bạn thu thập dữ liệu của mình trên tất cả các điểm tiếp xúc của khách hàng và tải chúng một cách an toàn vào Redshift – hoặc bất kỳ kho nào khác mà bạn chọn, với nỗ lực tối thiểu

Kết nối với dữ liệu dịch chuyển đỏ của bạn bằng Python

Để truy cập dữ liệu Redshift của bạn bằng Python, trước tiên chúng tôi cần kết nối với phiên bản của chúng tôi. Như đã đề cập ở trên, Redshift tương thích với các giải pháp cơ sở dữ liệu khác như PostgreSQL. Do đó, bạn có thể sử dụng một cách an toàn các công cụ mà bạn sẽ sử dụng để truy cập và truy vấn dữ liệu PostgreSQL của mình cho Redshift

Chúng tôi sẽ sử dụng trình điều khiển Python psycopg để kết nối với phiên bản Redshift của chúng tôi. Điều đó nói rằng, xin vui lòng thử nghiệm với bất kỳ thư viện nào khác mà bạn chọn để làm như vậy

con=psycopg2.connect[dbname= 'dbname', host='host',

port= 'port', user= 'user', password= 'pwd']

Chúng tôi thực sự khuyên bạn nên sử dụng mã ở trên như một phần trong quy trình của mình và bọc mã đó trong một hàm xử lý bất kỳ lỗi nào. Các tham số mà bạn cần là điển hình để kết nối với bất kỳ cơ sở dữ liệu nào

  • Tên của cơ sở dữ liệu
  • Tên máy chủ
  • Hải cảng
  • Tên tài khoản
  • Mật khẩu

Thực hiện truy vấn trên dữ liệu dịch chuyển đỏ của bạn bằng Psycopg

Khi kết nối cơ sở dữ liệu được thiết lập, chúng ta có thể bắt đầu truy vấn dữ liệu Redshift. Chúng tôi sử dụng các truy vấn SQL để thu hẹp lượng dữ liệu chúng tôi muốn cho phân tích của mình

Để làm như vậy với psycopg, chúng tôi thực hiện các bước sau

  • Chúng tôi nhận được một con trỏ từ kết nối cơ sở dữ liệu của mình, như vậy
  • Chúng tôi thực hiện truy vấn từ bảng mà chúng tôi muốn lấy dữ liệu của mình từ đó

cur.execute["SELECT * FROM `table`;"]

  • Osau khi truy vấn được thực hiện thành công, chúng tôi hướng dẫn psycopg tìm nạp dữ liệu từ cơ sở dữ liệu. Để phân tích dữ liệu sâu hơn, bạn nên lấy bộ dữ liệu hoàn chỉnh. Do đó, chúng tôi chạy lệnh sau
  • Cuối cùng, chúng tôi đóng con trỏ và kết nối, như vậy

Phần quan trọng nhất ở đây là truy vấn SQL mà chúng tôi thực hiện để tìm nạp các bản ghi từ tập dữ liệu. Bạn cũng có thể sử dụng SQL để thực hiện các khối lớn tiền xử lý dữ liệu của mình và thiết lập một bộ dữ liệu phù hợp để giúp việc phân tích dữ liệu của bạn dễ dàng hơn rất nhiều

Ví dụ: bạn có thể nối nhiều bảng trong cơ sở dữ liệu hoặc sử dụng các hàm tổng hợp được Redshift hỗ trợ để tạo các trường mới theo yêu cầu của bạn

Sử dụng dữ liệu được truy vấn để phân tích dữ liệu

Bây giờ, chúng tôi đã truy vấn thành công dữ liệu Redshift của mình và tìm nạp dữ liệu đó để phân tích, đã đến lúc xử lý dữ liệu đó bằng các công cụ phân tích dữ liệu mà chúng tôi có sẵn

Khi nói đến Python, các thư viện phổ biến nhất để phân tích dữ liệu là

cur.execute["SELECT * FROM `table`;"]

1 và

cur.execute["SELECT * FROM `table`;"]

2

  • NumPy là một thư viện Python phổ biến được sử dụng chủ yếu cho tính toán số
  • pandas là một thư viện phân tích dữ liệu được sử dụng rộng rãi trong Python. Nó cung cấp cấu trúc dữ liệu hiệu suất cao được gọi là DataFrame để làm việc với các cấu trúc giống như bảng

Bất kể bạn muốn thực hiện loại phân tích nào, bạn sẽ cần sử dụng một trong hai thư viện này để thể hiện dữ liệu ban đầu của mình

Đang tải dữ liệu lên NumPy

Khá đơn giản để biến dữ liệu của bạn thành một mảng

cur.execute["SELECT * FROM `table`;"]

1. Chúng tôi khởi tạo một mảng

cur.execute["SELECT * FROM `table`;"]

1 mới và chuyển con trỏ chứa kết quả truy vấn dưới dạng tham số

Chạy đoạn mã sau trong bảng điều khiển Python của bạn

data = np.array[cur.fetchall[]]

Đang tải dữ liệu lên gấu trúc

Bạn cũng có thể sử dụng pandas thay vì

cur.execute["SELECT * FROM `table`;"]

1 để phân tích dữ liệu của mình. Tuy nhiên, đối với điều này, các bước liên quan hơi khác một chút

Tham khảo đoạn mã sau

________số 8_______

Như đã thấy trong đoạn mã trên, chúng tôi sẽ sử dụng SQLAlchemy để kết nối với phiên bản Redshift của chúng tôi bằng thông tin xác thực kết nối. Sau đó, chúng tôi sử dụng phương thức read_sql để thực hiện truy vấn SQL trên cơ sở dữ liệu. Cuối cùng, chúng tôi có thể tải kết quả trực tiếp vào DataFrame và sử dụng nó để phân tích

Cách truy cập và truy vấn dữ liệu dịch chuyển đỏ bằng R?

Tải và truy vấn dữ liệu Redshift của bạn cũng dễ dàng không kém trong R. Chúng tôi có thể sử dụng gói

cur.execute["SELECT * FROM `table`;"]

6 để kết nối với phiên bản Redshift của mình và sau đó chạy các truy vấn trên dữ liệu

Đây là cách cài đặt gói trong RStudio

install.packages["RPostgreSQL"]

Bước tiếp theo là kết nối với phiên bản Redshift, như minh họa bên dưới

drv

Chủ Đề