LePhuocPhat
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # [SEMINAR BIGDATA] APACHE SUPERSET ## I. QUY ĐỊNH & YÊU CẦU TỐI THIỂU ### A. Thuyết trình trực tiếp #### 1. Đối với người trực tiếp thuyết trình * Mỗi nhóm thuyết trình nội dung nghiên cứu trong thời gian ==**chính xác 30 phút**==. Có 10 phút vấn đáp Q & A. * Nếu bài thuyết trình quá ngắn hoặc quá dài sẽ không thể nào đạt được số điểm tốt nhất có thể. * Các thành viên phải có mặt đúng giờ đã hẹn. Nếu chỉ cần một thành viên trễ hẹn, cả nhóm sẽ trễ tiến độ thuyết trình. * Tất cả các thành viên phải thuyết trình. Bất kỳ ai vắng mặt mà không có sự cho phép sẽ nhận được 0đ cho phần seminar. * Các thành viên trong nhóm đều được khuyến khích tham gia thuyết trình để thể hiện kỹ năng thuyết trình của mình và do đó sẽ nhận được nhiều điểm hơn cho tiêu chí này. * Cố gắng trình bày (cả thuyết trình và slides) một cách rõ ràng nhất có thể bằng cách sử dụng hình ảnh, từ ngữ súc tích, hình ảnh minh họa và biểu đồ. * Hầu hết khán giả đều chưa có kinh nghiệm về chủ đề của nhóm thuyết trình. Nên cần phải trình bày sao cho mọi người có thể hiểu dễ dàng nhất có thể. #### 2. Đối với người xem seminar * Tham gia hoạt động của hội thảo một cách tích cực bằng cách đặt câu hỏi và đánh giá nhóm thuyết trình đó thông qua biểu mẫu Google Form cho trước. Giảng viên sẽ sử dụng thông tin này để kiểm tra sự tham gia và thái độ của bạn. * **Tất cả thành viên trong nhóm phải có mặt đầy đủ.** Bất kỳ ai vắng mặt mà không có sự cho phép sẽ không được tính điểm cho buổi hội thảo. ### B. Tài liệu cần nộp * Mỗi nhóm phải chia sẻ slide(s) đến đường dẫn Google Drive folder 3 ngày trước ngày thuyết trình seminar. * Mỗi nhóm phải nộp tất cả tài liệu liên quan đến buổi seminar (slides, tài liệu report, video demo tools, các tài liệu tham khảo , ...), ngoại trừ source code (giảng viên sẽ không chạy code tools, giảng viên sẽ yêu cầu nhóm thuyết trình), thời điểm nộp là 1 tuần sau ngày thuyết trình vấn đáp chính thức. * Yêu cầu về báo cáo: báo cáo phải tuân thủ nghiêm ngặt theo định dạng từ 10 đến 15 trang (không tính bìa), font chữ mặc định là Time New Roman 12pt (hoặc font chữ khác nhưng phải cùng kích thước), khoảng cách lề mặc định là 1.5 theo tiêu chuẩn của MSWord. * Nếu nhóm sử dụng các ứng dụng chỉnh sửa text khác, hãy định dạng tương tự như mô tả trên. * Nội dung không được sao chép và dịch từ nguồn. ## II. QUẢN LÝ DỰ ÁN ### 1. Yêu cầu chung * Thời gian nộp slides: * Thời gian vấn đáp: * Thời gian nộp sản phẩm cuối cùng: * Hình thức vấn đáp * Minh chứng cần nộp ### 2. Tài nguyên chung * GG Drive : [link here](https://drive.google.com/drive/folders/1c39j5O-_TMz60ekmZaVZJIMVk-kZxq_S?usp=sharing) * Github : [link here]() * Video Demo : [link here](https://youtu.be/IcQqkMjigXM?si=_hiCCF9388nxiZr-) * Slides : [link here](https://www.canva.com/design/DAGupPFrSfM/ehGfR4IiihuHSHa0P0EiRw/edit?utm_content=DAGupPFrSfM&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton) * Report Latex * Report Apache Superset: [link here](https://www.overleaf.com/read/qyhjjkkbwrkr#d279ab) * Report Demo Apache Superset: [link here](https://www.overleaf.com/read/txtktydtrzmf#254dcd) * Chú ý: Để vào được ## III. THÔNG TIN NHÓM & BẢNG PHÂN CÔNG CÔNG VIỆC ### 1. Thông tin nhóm ### 2. Bảng phân công công việc | MSSV | Họ và Tên | Công việc được giao | Mức độ hoàn thành | |:--------:|:---------------:| ------------------- |:-----------------:| | 22127174 | Ngô Văn Khải | | $100\%$ | | 22127208 | Nguyễn Anh Khôi | | $100\%$ | | 22127260 | Bùi Công Mậu | | $100\%$ | | 22127322 | Lê Phước Phát | | $100\%$ | ## IV. TRÌNH BÀY & MINH CHỨNG Điền nội dung ở đây .... ## V. NỘI DUNG ĐỒ ÁN ### A. TỔNG QUAN VỀ APACHE SUPERSET #### 1. APACHE SUPERSET là gì ? Điền nội dung ở đây ... #### Mục tiêu - Là một nền tảng Business Intelligence dùng để phân tích, khám phá dữ liệu và trực quan hóa dữ liệu. #### Độ phổ biến của tools này trong cộng đồng Big Data ra sao? - Apache Superset hiện đang rất phổ biến và đang tăng trưởng nhanh chóng trong cộng đồng big data. Nhờ vào hiệu năng mạnh mẽ, mức phí hợp lí không thua gì so với các công cụ khác. #### Ưu điểm và nhược điểm của Aphache superset ##### Ưu điểm: - Mã nguồn mở: sử dụng hoàn toàn miễn phí. Đặc biệt, có cộng đồng có thể giúp đỡ. - Dễ dùng: giao diện thân thiện với người dùng, và nhanh chóng có thể tạo ra dashboard. - Đa dạng các lựa chọn: có nhiều biểu đồ, bản đồ được cung cấp cho người dùng thoải mái chọn lựa hoặc có thể thêm các biểu đồ khác vào. - Hỗ trợ và kết hợp được với nhiều nguồn dữ liệu khác nhau: Apache Superset sẽ yêu cầu sử dụng Python DB-API và SQLAlchemy cho mỗi cơ sở dữ liệu muốn kết nối. Một số cơ sở dữ liệu phổ biến hiện nay: Postgres, MySQl, hay Google sheets... Đối với một số cơ sở dữ liệu chưa được hỗ trợ như MongoDB có thể kết nối thông qua Trino, Presto,...(truy vấn phân tán). ##### Nhược điểm: - Cài đặt và cấu hình rất phức tạp: Khó sử dụng dành cho những người không có kiến thức nền IT, dễ bị lỗi nếu thiếu các môi trường liên quan. - Thiếu hỗ trợ chính thức: vì là mã nguồn mở => tự xử lí lỗi hoặc nhờ cộng đồng hỗ trợ (Github, StackOverFlow). - Hạn chế các tính năng: Apache Superset khá hạn chế về vấn đề tùy chỉnh trên giao diện, các tính năng nâng cao như những công cụ khác (Tableau, Power BI,...). - Bảo mật và phân quyền chưa linh hoạt: Hệ thống RBAC tương đối mạnh, nhưng việc cấu hình vai trò và quyền có thể khó khăn với người không chuyên backend. Có thể gặp rủi ro nếu không cấu hình đúng bảo mật trong môi trường production. ### 2. Các chức năng chính của tools * Dashboard tương tác -Apache Superset cho phép tạo dashboard tương tác giữa các biểu đồ. Có thể chọn nhiều biểu đồ sắp xếp và đưa vào dashboard. ![image_2025-08-01_235532785](https://hackmd.io/_uploads/SJ6FZdcDxx.png) * Hỗ trợ nhiều loại biểu đồ -Apache Superset cho phép lựa chọn đa dạng biểu đồ. ![image_2025-08-02_000820038](https://hackmd.io/_uploads/SkhYV_5Ple.png) * SQL Lab -Nơi người dùng có thể viết SQL để truy vấn dữ liệu trực tiếp từ các nguồn dữ liệu. Trong đó, có hỗ trợ autocomplete, và lưu các câu truy vấn và export ra kết quả. ![image_2025-08-02_172922299](https://hackmd.io/_uploads/rypFuPivee.png) * Explore (Giao diện no-code) * Dataset và Semantic Layer * Kết nối nguồn dữ liệu * Các tính năng dashboard nâng cao * Hiệu năng và Cache * Bảo mật và phân quyền * Khả năng mở rộng ### 3. Kiến trúc tổng quan của tools ![image_2025-07-31_143035303](https://hackmd.io/_uploads/BJXoo5dwgx.png) #### 3.1 WSGI Web Server(s) - Nơi người dùng truy cập Superset qua các trình duyệt (máy chủ để chạy Apache Superset). - Nhận request từ người dùng -> gửi truy vấn -> đưa ra kết quả -> hiển thị biểu đồ/ dashboards. - Chạy trên Gunicorn. => Xử lí giao diện người dùng và yêu cầu tương tác. #### 3.2 Chart Cache (optional) - Tăng tốc độ hiển thị dashboard. - Cache kết quả của các biểu đồ tránh được hiện tượng truy vấn lại vào database nhiều lần. - Tiết kiệm tài nguyên và giảm thời gian load dashboard. #### 3.3 Metadata - Lưu trữ các thông tin cấu hình của Superset (người dùng, vai trò và quyền truy cập,...). Ngoài ra, còn có dashboards, charts, databases. => Lưu cấu hình Apache Superset #### 3.4 Analytics Databases - Hỗ trợ đa dạng database: MySQL, BigQuery, Presto, Druid,... - Nơi lưu trữ dữ liệu đầu vào để thực hiện trực quan hóa dữ liệu. - Tuy nhiên, Superset không lưu dữ liệu mà liên kết tới các cơ sở dữ liệu. - Superset sẽ gửi truy vấn phù hợp để lấy dữ liệu phù hợp. #### 3.5 Async Infra (optional) - Bao gồm: Celery workers + Message Queue + Result Cache - Để xử lí truy vấn quá lâu hoặc nặng => Superset có thể treo hoặc timeout. - Nơi để web server gửi tin nhắn vào hàng đợi (queue) => có 1 mảng có thể hiển thị truy vấn cho người dùng để cập nhật database. => Cải thiện hiệu năng khi làm việc với dữ liệu lớn. Trong đó: + Message Queue: Nhận các tác vụ từ web server -> gửi các tác vụ này tới Celery Worker => Là hàng đợi trung gian giúp xử lý bất đồng bộ (asynchronous tasks). + Celery workers: Là các tiến trình chạy nền để thực thi tác vụ từ Message Queue => Xử lý các tác vụ nặng mà không chặn web UI. + Cache kết quả từ các worker để tái sử dụng nếu người dùng request lại, có thể lưu ở hệ thống file như Amazon S3, HDFS => Cache dữ liệu đầu ra giúp tăng tốc khi người dùng xem lại cùng biểu đồ. => Nếu chỉ xử lí với dữ liệu nhỏ thì không cần phải có Chart Cache và Async Infra. Tuy nhiên, khi dữ liệu lớn để thao tác nhanh và mượt hơn thì cần tới 2 kiến trúc này. ### 4. So sánh ít nhất với 2 tools tương đồng #### So sánh với Grafana ##### Giới thiệu về Grafana Grafana là một phần mềm, một công cụ mã nguồn mở được phát triển để chuyên dùng cho việc giám sát thời gian thực (real-time monitoring), cung cấp khả năng observability - là khả năng đo lường trạng thái hiện tại của một hệ thống dựa trên dữ liệu mà nó tạo ra, chẳng hạn như logs, metrics, và traces. [Grafana Vs Superset | Which Data Visualization Tool Is Better in 2025?](https://youtu.be/_tA8jdHa0Gs) [Tìm hiểu chi tiết khả năng giám sát (Observability) là gì?](https://fptcloud.com/kha-nang-giam-sat-observability-la-gi/) ##### So sánh Superset với Grafana Sự khác biệt chính giữa Superset và Grafana nằm ở loại câu hỏi mà mỗi công cụ này giúp người dùng trả lời. Grafana được tạo ra để trả lời câu hỏi: "Hệ thống của tôi đang hoạt động như thế nào vào ngay lúc này?". Đây là một câu hỏi về **real-time monitoring**. Còn Apache Superset được tạo ra để trả lời câu hỏi: "Ta có thể học được gì từ dữ liệu của mình?". Đây là một câu hỏi về **business intelligence**. Grafana có thế mạnh là có tích hợp sâu với các cơ sở dữ liệu time-series như Prometheus và InfluxDB. Còn Apache Superset thì có thể kết nối với hầu hết mọi cơ sở dữ liệu hỗ trợ SQL. ###### Bảng so sánh | **Tiêu chí** | **Grafana** | **Apache Superset** | |-------------------------|-------------|---------------------| | **Mục tiêu chính** | Giám sát thời gian thực, observability | Business intelligence, khám phá dữ liệu | | **Nguồn dữ liệu** | Prometheus, InfluxDB, Elasticsearch, AWS, v.v. | SQL databases (PostgreSQL, MySQL, Snowflake, v.v.) | | **Biểu đồ/Trực quan** | Time-series charts, dynamic dashboards | Pie charts, geospatial, interactive dashboards | | **Thế mạnh** | Alerting, dữ liệu thời gian thực, plugins mở rộng | SQL IDE, phân tích ad-hoc, hỗ trợ no-code | | **Ứng dụng thực tế** | DevOps, IT operations, theo dõi hệ thống | BI, báo cáo, phân tích dữ liệu | | **Cộng đồng** | Hệ sinh thái plugin lớn, cộng đồng mạnh | Cộng đồng phát triển, được Apache hỗ trợ tốt | | **Dễ sử dụng** | Thân thiện cho người dùng kỹ thuật | Giao diện trực quan, dễ tiếp cận cho người không chuyên | #### So sánh với Metabase ##### Giới thiệu Metabase Metabase là một phần mềm, một công cụ phân tích và trực quan hoá dữ liệu mã nguồn mở, được tạo ra với mục đích là để giúp tất cả mọi người trong một tổ chức có thể dễ dàng làm việc với dữ liệu, nghĩa là công cụ này đề cao **tính dễ sử dụng**. Metabase giúp người dùng không có kiến thức lập trình hay SQL vẫn có thể tự đặt câu hỏi, tự khám phá và tự tạo ra các báo cáo về dữ liệu để truyền đạt các insight. Tuy không phải thế mạnh của mình nhưng dành cho các nhà phân tích dữ liệu chuyên nghiệp, Metabase vẫn cung cấp một trình soạn thảo SQL mạnh mẽ để thực hiện những truy vấn phức tạp. Tính năng nổi bật của Metabase gồm khả năng kết nối với rất nhiều nguồn dữ liệu (như MySQL, PostgreSQL, BigQuery, Snowflake), tạo các dashboard tương tác cho phép xem chi tiết và lọc dữ liệu linh hoạt, thêm vào đó là khả năng thiết lập cảnh báo tự động qua email hoặc Slack. ##### So sánh Superset với Metabase Sự khác biệt chính giữa Apache Superset và Metabase nằm ở triết lý thiết kế và đối tượng người dùng mục tiêu. Superset định hướng trở thành một bộ công cụ mạnh mẽ và linh hoạt, hướng đến các nhà phân tích dữ liệu và kỹ sư, cung cấp vô số tùy chọn biểu đồ và khả năng tùy chỉnh sâu, phù hợp cho các bài toán phân tích phức tạp nhưng đòi hỏi người dùng phải có chuyên môn kỹ thuật nhất định. Ngược lại, Metabase tập trung vào sự đơn giản và khả năng truy cập. Mục tiêu của Metabase là "dân chủ hóa dữ liệu", cho phép cả những người dùng không chuyên về kỹ thuật cũng có thể tự khám phá dữ liệu thông qua một giao diện trực quan và các luồng phân tích được định hướng sẵn. Về cơ bản, Superset dành cho chuyên gia là những cần sự tùy biến, còn Metabase dành cho toàn bộ tổ chức cần dễ tiếp cận với số đông. [Metabase vs Apache Superset: Which is best for your team?](https://youtu.be/HXzob4kvlSM?si=mNz1IccovGbNpPAa) ###### Bảng so sánh | **Tiêu chí** | **Metabase** | **Apache Superset (Theo quan điểm của Metabase)** | |-----------------------------|------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------| | **Đối tượng người dùng** | Dành cho mọi đối tượng trong công ty, từ người dùng không chuyên về kỹ thuật đến các nhà phân tích. | Dành cho các đội ngũ kỹ thuật, nhà khoa học dữ liệu có chuyên môn cao. | | **Cài đặt & Vận hành** | Rất dễ dàng và nhanh chóng, đặc biệt với phiên bản Cloud. Có thể bắt đầu trong vài phút. | Đòi hỏi nhiều kiến thức và nguồn lực kỹ thuật để cài đặt, vận hành và quản lý. | | **Tính tương tác Dashboard** | Tương tác sâu, cho phép người dùng tự khám phá và phân tích dữ liệu ngay trên dashboard một cách trực quan. | Tương tác cơ bản như lọc và xem thông tin. | | **Phân tích phức tạp** | Hỗ trợ tốt cho các nhu cầu phân tích phổ biến. | Rất mạnh mẽ cho các phân tích lớn, phức tạp và yêu cầu biểu đồ đa dạng. | | **Hỗ trợ** | Có đội ngũ hỗ trợ khách hàng chuyên nghiệp, phản hồi nhanh (đối với các gói trả phí). | Dựa vào cộng đồng mã nguồn mở. | #### So sánh với Redash ##### Giới thiệu Redash Redash là một phần mềm, một công cụ mã nguồn mở giúp trực quan hoá và khám phá dữ liệu, được tạo ra để giúp mọi người làm việc với dữ liệu một cách nhanh chóng và hiệu quả. Triết lý cốt lõi của Redash là tập trung vào sự ổn định, đáng tin cậy và một trải nghiệm người dùng mượt mà. Nền tảng này cho phép người dùng kết nối dễ dàng với nhiều loại nguồn dữ liệu, từ các cơ sở dữ liệu SQL truyền thống đến các nền tảng dữ liệu lớn, thường không đòi hỏi cấu hình phức tạp. Trọng tâm của Redash là một trình soạn thảo SQL mạnh mẽ, cho phép người dùng viết truy vấn, thực thi và ngay lập tức biến kết quả thành các biểu đồ và bảng biểu. Những biểu đồ và bảng biểu này sau đó có thể được sắp xếp vào các dashboard tương tác và chia sẻ với toàn bộ tổ chức, giúp mọi người cùng theo dõi các chỉ số quan trọng. Ngoài ra, Redash còn tích hợp tính năng cảnh báo (alerting), cho phép tự động thông báo khi dữ liệu đạt đến một ngưỡng nhất định. ##### So sánh Apache Superset với Redash Sự khác biệt cốt lõi giữa Apache Superset và Redash nằm ở triết lý thiết kế và trải nghiệm người dùng mà mỗi công cụ mang lại. Superset nổi bật nhờ khả năng tùy biến linh hoạt và bộ sưu tập biểu đồ phong phú, đáp ứng nhu cầu của những nhà phân tích dữ liệu muốn xử lý các bài toán phức tạp với nhiều lựa chọn trực quan hóa và tùy chỉnh sâu. Tuy nhiên, chính sự đa dạng đó cũng đồng nghĩa với một giao diện nhiều lớp lựa chọn, đường cong học tập khá dốc và đôi khi chưa thực sự ổn định. Ở chiều ngược lại, Redash lại tập trung vào sự đơn giản và ổn định. Công cụ này mang lại trải nghiệm liền mạch và trực quan, từ việc viết truy vấn SQL cho đến việc tạo lập biểu đồ, rất phù hợp với các đội nhóm cần một giải pháp đáng tin cậy, dễ sử dụng cho các nhu cầu phân tích thường ngày, dù số lượng loại biểu đồ không nhiều bằng Superset. ###### Bảng so sánh | Tiêu chí | Apache Superset | Redash | | :--- | :--- | :--- | | **Triết lý & Đối tượng** | **Linh hoạt & Tùy chỉnh.** Hướng đến người dùng có kỹ năng kỹ thuật (nhà phân tích, kỹ sư dữ liệu) cần một bộ công cụ mạnh mẽ, tùy biến cao và không giới hạn về khả năng trực quan hóa. | **Đơn giản & Hiệu quả.** Hướng đến các đội ngũ (bao gồm cả người dùng nghiệp vụ biết SQL) ưu tiên sự ổn định, dễ sử dụng và một quy trình làm việc nhanh chóng từ truy vấn đến chia sẻ báo cáo. | | **Cài đặt & Triển khai** | Phức tạp hơn, đòi hỏi nhiều bước cấu hình và kiến thức kỹ thuật, đặc biệt khi thiết lập các tính năng nâng cao. Hỗ trợ Helm Chart chính thức. | Tương đối đơn giản và nhanh chóng hơn, thường có trình hướng dẫn cài đặt thân thiện. Quá trình triển khai ít rào cản hơn cho người mới bắt đầu. | | **Khả năng Trực quan hóa** | **Rất mạnh.** Cung cấp một thư viện biểu đồ khổng lồ, đa dạng và có khả năng tùy chỉnh sâu. Đặc biệt mạnh mẽ với các loại biểu đồ phức tạp và dữ liệu địa lý. | **Cơ bản nhưng hiệu quả.** Cung cấp các loại biểu đồ phổ biến, hoạt động ổn định và đáp ứng tốt các nhu cầu phân tích thông thường. Ít lựa chọn hơn so với Superset. | | **Trải nghiệm & Luồng làm việc** | Luồng làm việc có nhiều bước hơn: cần lưu truy vấn thành "dataset" ảo trước khi tạo biểu đồ. Điều này mang lại sự linh hoạt nhưng có thể làm chậm quá trình khám phá nhanh. | Luồng làm việc liền mạch và trực quan: viết truy vấn SQL -> chọn loại biểu đồ -> thêm vào dashboard. Tối ưu cho việc phân tích và tạo báo cáo nhanh. | | **Tính năng Lọc & Tương tác** | Khả năng lọc trên dashboard rất mạnh mẽ và dễ sử dụng sau khi đã thiết lập dataset. Hỗ trợ tương tác phức tạp. | Khả năng lọc cơ bản hơn, đôi khi cần viết thêm truy vấn phụ để tạo nguồn dữ liệu cho bộ lọc. Lọc chéo (cross-filtering) không trực quan bằng. | | **Cộng đồng & Phát triển** | Được hỗ trợ bởi cộng đồng lớn và công ty Preset. Tốc độ phát triển nhanh, liên tục bổ sung tính năng mới. | Được Databricks mua lại và tích hợp vào sản phẩm của họ. Vẫn là mã nguồn mở nhưng tốc độ phát triển các tính năng độc lập có thể chậm hơn. | | **Độ ổn định** | Vì có nhiều tính năng và tốc độ phát triển nhanh, đôi khi có thể gặp các lỗi nhỏ hoặc các tính năng chưa hoàn thiện. | Được đánh giá cao về sự ổn định và đáng tin cậy do tập trung vào việc hoàn thiện các tính năng cốt lõi. | [Choosing an Analytics Tool. Metabase Vs Superset Vs Redash](https://medium.com/vortechsa/choosing-an-analytics-tool-metabase-vs-superset-vs-redash-afd88e028ba9) ###### Bảng so sánh #### So sánh 3 tool: Metabase, Redash và Superset [Superset vs Metabase vs Redash – Comparing Open Source BI Tools](https://hevodata.com/blog/superset-vs-metabase-vs-redash/) ##### Nguồn dữ liệu hỗ trợ bởi Metabase, Redash và Superset | **Data Sources** | **Metabase** | **Redash** | **Superset** | |-------------------------|:------------:|:----------:|:------------:| | Amazon Redshift | ✓ | ✓ | ✓ | | Google BigQuery | ✓ | ✓ | ✓ | | Cassandra | | ✓ | | | MongoDB | ✓ | ✓ | | | PostgreSQL | ✓ | ✓ | ✓ | | MySQL | ✓ | ✓ | ✓ | | Google Analytics | ✓ | ✓ | | | Snowflake | ✓ | ✓ | | | Druid | ✓ | ✓ | ✓ | | H2 | ✓ | | | | SQLite | ✓ | ✓ | ✓ | | Microsoft SQL Server | ✓ | ✓ | ✓ | | CrateDB | ✓ | | | | Oracle | ✓ | ✓ | ✓ | | Vertica | ✓ | ✓ | ✓ | | Presto | ✓ | ✓ | | ##### So sánh hỗ trợ authentication giữa 3 tool này Superset cung cấp nhiều lựa chọn xác thực hơn. Trong khi Metabase và Redash chỉ hỗ trợ Google OAuth và SSO, thì với Superset, ta còn có thể tích hợp các hệ thống xác thực nội bộ hoặc LDAP của doanh nghiệp. | **Công cụ** | **Google OAuth** | **LDAP** | **OpenID** | **Database** | |---------------|:----------------:|:--------:|:----------:|:------------:| | Metabase | Có | Có | Không | Không | | Redash | Có | Không | Không | Không | | Superset | Có | Có | Có | Có | ### 5. Minh họa các chức năng chính của tool này. (Không bao gồm quá trình cài đặt và các bước đăng nhập tài khoản) ## VI. DEMO TOOLS Phần này sẽ có một phần code riêng + report riêng ## VII. TÀI LIỆU THAM KHẢO [The history and the anatomy of the Apache Superset](https://www.datacouncil.ai/hubfs/DataEngConf/Data%20Council/Slides%20SF%2019/The%20history%20and%20anatomy%20of%20Apache%20Superset.pdf) [Introduction to Apache Superset](https://superset.apache.org/docs/intro) [Apache Superset](https://en.wikipedia.org/wiki/Apache_Superset) --- ## SCRIPT - Mậu: kiến trúc + chức năng Giới thiệu tổng quan về kiến trúc. Front end: React, Back end: Flask (python). => Lý do: React: thư viện JavaScript hiện đại cho UI, giúp xây dựng giao diện người dùng tương tác cao, realtime (chart, filter, dashboard), với khả năng render nhanh và dễ mở rộng. Flask là một micro web framework Python, nhẹ và linh hoạt, phù hợp để xây dựng REST APIs phục vụ dữ liệu, tương thích tốt với hệ sinh thái Python và các thư viện xử lý dữ liệu (Pandas, SQLAlchemy, v.v.). => giúp Superset linh hoạt, hiệu suất cao, và dễ phát triển. WEB SERVER: Gunicorn (Green Unicorn) là một WSGI(Web Server Gateway Interface) là một giao thức chuẩn (interface) giữa web server (như Gunicorn) và ứng dụng Python) HTTP server dùng để chạy các ứng dụng web Python, đặc biệt là các ứng dụng Flask, Fast API,... Nginx là là một máy chủ web cũng có thể được sử dụng như một reverse proxy, load balancer, mail proxy và bộ đệm HTTP. Là phần mềm miễn phí và mã nguồn mở. => để xử lý, cân bằng tải và phân phối request đến các ứng dụng web phía sau như Flask thông qua WSGI server như Gunicorn. => Tổng kết: Trình duyệt gửi yêu cầu đến Nginx (đóng vai trò proxy), Nginx chuyển yêu cầu đó đến Gunicorn – một WSGI server có nhiệm vụ giao tiếp với ứng dụng Flask, từ đó Flask xử lý logic và trả kết quả ngược lại cho người dùng. Metadata database: Nơi lưu: dashboard, biểu đồ, datasource, quyền người dùng...Web servers (Gunicorn) sẽ truy vấn vào đây để xác định: Người dùng là ai, Dashboard nào có quyền truy cập,... Có thể sử dụng các database khác như: Microsoft SQL, Postgresql, mysql, oracle,... Data warehouse: KHi người dùng chạy truy vấn từ web server sẽ gửi các câu truy vấn tới data warehouse để lấy dữ liệu để xử lí theo yêu cầu. Hỗ trợ nhiều database như: Redshift, Snowflake, databricks,... Thành phần phụ: Cache Đây là thành phần phụ trong kiến trúc, Cache lưu cặp key–value Key: thường là SQL query (được băm/hash) Value: kết quả trả về từ warehouse => Người dùng yêu cầu lại query giống nhau → hệ thống kiểm tra cache trước, nếu có thì không cần truy vấn lại database. => tăng tốc và giảm tải. Apache Superset lưu trữ tạm thời kết quả và truyền thông tin giữa frontend và worker để hỗ trợ các tác vụ nền như truy vấn bất đồng bộ, cảnh báo và tạo ảnh thu nhỏ. => hỗ trợ các tác vụ nền. Optional async query runs khi nào nên có cấu trúc này khi có dashboard quá nặng và phức tạp -> chứa nhiều chart, dữ liệu, các câu truy vấn phức tạp và tốn thời gian quá thời gian timeout, hoặc xử lí với dữ liệu thời gian thực và được cập nhật liên tục. Khi người dùng thực hiện một truy vấn phức tạp, Superset không xử lý ngay trong web server vì sẽ dễ bị treo. Thay vào đó, truy vấn được gửi vào Redis – đóng vai trò như một hàng đợi trung gian. Redis sau đó chuyển truy vấn này đến Celery Worker – thành phần chuyên xử lý tác vụ nền. Sau khi xử lý xong, kết quả có thể được lưu lại và trả về cho người dùng. Việc này giúp Superset vẫn phản hồi nhanh, không bị treo dù xử lý truy vấn nặng. Chức năng ## Câu trả lời cho câu hỏi ## Hiệu năng Superset thế nào khi dữ liệu lớn? -Superset không thực sự "lưu trữ" dữ liệu mà mọi truy vấn, xử lí do hệ quản trị cơ sở dữ liệu mà nó kết nối đảm nhiệm. Hiệu năng của Superset khi xử lý dữ liệu lớn phụ thuộc hoàn toàn vào tốc độ và khả năng xử lý của nguồn dữ liệu: nếu DB đã được tối ưu (phân vùng, index, dùng engine phân tán/phân tán như Druid, ClickHouse,...), Superset có thể trả về kết quả nhanh ngay cả với terabyte dữ liệu. ## Làm sao để tối ưu SQL Lab để tránh users chạy truy vấn tốn kém ? - Giới hạn truy vấn – Cấu hình DISPLAY_MAX_ROW và SQLLAB_ASYNC_TIME_LIMIT_SEC để giới hạn số dòng trả về và thời gian chạy. ( ở trong file superset_config.py). - Dùng Virtual Dataset – Tạo sẵn dataset đã tối ưu để người dùng sử dụng thay vì viết truy vấn từ đầu. - Bật cache – Dùng Redis/Celery để lưu kết quả, tránh truy vấn lặp lại. ## Làm sao hạn chế chi phí khi Superset kết nối đến data warehouse tính phí (BigQuery, Snowflake)? Tận dụng Cache Layer Mục tiêu: Giảm số lần truy vấn lặp lại. Cách làm: Bật và tối ưu cache (Redis hoặc Memcached) để lưu kết quả query, đặc biệt cho dashboard hay xem. Hiệu quả: Người dùng load lại dashboard sẽ lấy từ cache thay vì query mới → không bị tính phí thêm Giảm độ phức tạp và dung lượng dữ liệu của query Mục tiêu: Tối ưu SQL để quét ít dữ liệu hơn. Cách làm: lọc dữ liệu trước, chỉ chọn cột cần thiết,... Hiệu quả: Mỗi truy vấn tiêu tốn ít GB hơn. ## Vai trò của metadata database trong kiến trúc Superset là gì, và tại sao cần tách riêng nó khỏi data warehouse chính? Việc tách riêng giúp bảo mật, tránh làm chậm data warehouse và đảm bảo metadata luôn nhanh và độc lập. ## Trong Superset, cache layer vừa lưu trữ kết quả truy vấn vừa làm message broker — tại sao lại cần tích hợp 2 chức năng này vào cùng một tầng? Giảm độ trễ khi load biểu đồ và đồng thời hỗ trợ giao tiếp giữa worker và backend cho tác vụ nền, giúp hệ thống đơn giản hơn và giảm phụ thuộc vào nhiều dịch vụ.

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully