Superset Apache trong môi trường sản xuất


Hoàng Lâm Viên
1 năm trước
Hữu ích 6 Chia sẻ Viết bình luận 0
Đã xem 3793

Trực quan hóa dữ liệu giúp xây dựng sự hiểu biết sâu sắc hơn nhiều về dữ liệu và nhanh chóng phân tích xung quanh dữ liệu. Có một số sản phẩm trả tiền trưởng thành có sẵn trên thị trường. Gần đây, tôi đã khám phá một sản phẩm mã nguồn mở Apache Superset  mà tôi đã tìm thấy một sản phẩm rất lạc quan trong không gian này. Một số tính năng nổi bật của Superset là:

  • Một tập hợp trực quan dữ liệu phong phú.

  • Giao diện dễ sử dụng để khám phá và trực quan hóa dữ liệu.

  • Tạo và chia sẻ bảng điều khiển.

Sau khi đọc về Superset, tôi muốn dùng thử và vì Superset là một dự án dựa trên ngôn ngữ lập trình Python, chúng ta có thể dễ dàng cài đặt nó bằng cách sử dụng  pip;  nhưng tôi đã quyết định thiết lập nó như một container dựa trên Docker . Repitet GitHub của Apache chứa mã để xây dựng và chạy Superset dưới dạng một thùng chứa . Vì tôi muốn chạy Superset theo cách phân tán hoàn toàn và với ít sửa đổi nhất có thể trong mã, tôi quyết định sửa đổi mã để nó có thể chạy ở nhiều chế độ khác nhau.

Dưới đây là danh sách các thay đổi / cải tiến cụ thể được thực hiện trong .

  • Phiên bản khác nhau của hình ảnh Superset có thể được xây dựng bằng cùng một mã.

  • Cấu hình superset có thể dễ dàng chỉnh sửa và gắn vào thùng chứa, không cần phải xây dựng lại hình ảnh.

  • Chúng ta có thể sử dụng các thực thi truy vấn không đồng bộ thông qua các trình thực thi dựa trên Celery và quản lý nó thông qua UI hoa .

Thăm dò thực hiện dễ dàng

Tuy nhiên, để khám phá một dự án, chế độ phát triển là một lựa chọn tuyệt vời, tuy nhiên, sẽ rất tuyệt nếu việc thăm dò ban đầu xảy ra với tất cả các tính năng, trong trường hợp Superset, chạy truy vấn ở chế độ không đồng bộ và lưu trữ kết quả trong bộ đệm . Bạn có thể khám phá Superset một cách trơn tru bằng cách sử dụng các lệnh dưới đây?.

Đầu tiên kéo hình ảnh Docker Superset từ docker-hub :

docker pull abhioncbr/docker-superset:<tag>

Nhận docker-compose.ymlsuperset-config.py từ  cơ sở mã và theo cùng cấu trúc thư mục.

Cuối cùng, bắt đầu một hình ảnh Superset dưới dạng một thùng chứa ở chế độ cục bộ  hoặc prod bằng cách sử dụng docker-compose:

cd docker-files/ && SUPERSET_ENV=<local | prod> SUPERSET_VERSION=<tag> docker-compose up -d

Chạy Superset trong Chế độ phân tán Hoàn thành

Theo hiểu biết của tôi, việc chạy Superset trong môi trường sản xuất để phục vụ hàng ngàn người dùng cuối phải được phân phối trong tự nhiên và có thể dễ dàng mở rộng theo yêu cầu. Hình ảnh dưới đây mô tả một thiết lập như vậy:


Hình ảnh Docker được xuất bản của Superset có thể được tận dụng để đạt được hình ảnh trên.

  • Bộ cân bằng tải ở phía trước để định tuyến yêu cầu từ máy khách đến một thùng chứa máy chủ.

  • Nhiều container trong  chế độ máy chủ để phục vụ UI của Superset. Bắt đầu một container máy chủ  bằng cách sử dụng  docker run có thể được thực hiện như sau:

docker run -p 8088:8088 \
-v config:/home/superset/config/ \
abhioncbr/docker-superset:<tag> \
cluster server <db_url> <redis_url>
  • Sử dụng nhiều vùng chứa trong chế độ worker để thực thi các truy vấn SQL ở chế độ không đồng bộ bằng cách sử dụng Celery execor. Bắt đầu một  container công nhân sử dụng  docker run có thể được thực hiện như sau:

docker run -p 5555:5555 \
-v config:/home/superset/config/ \
abhioncbr/docker-superset:<tag> \
cluster worker <db_url> <redis_url>
  • Sử dụng bộ chứa Redis tập trung hoặc cụm Redis để phục vụ nó như một lớp bộ đệm và hàng đợi nhiệm vụ Celery cho công nhân.

  • Sử dụng cơ sở dữ liệu siêu dữ liệu Superset tập trung.

Tôi thấy việc thiết lập Superset là Docker container khá dễ dàng và 9t có thể được sử dụng cho các môi trường khác nhau. 

Hữu ích 6 Chia sẻ Viết bình luận 0
Đã xem 3793