- Tổng hợp toàn cảnh để lập trình viên phần mềm mới tham gia lĩnh vực dữ liệu không chỉ ghi nhớ tên công cụ, mà còn nắm được vai trò và mối liên hệ của từng công cụ trong các giai đoạn thu thập/lưu trữ/xử lý/sử dụng dữ liệu
- Các vị trí dữ liệu có thể chia đại khái thành phân tích/khoa học/kỹ thuật/machine learning, xử lý các vấn đề và công cụ khác nhau, từ SQL và BI đến mô hình thống kê và notebook, hạ tầng pipeline, triển khai mô hình vận hành
- Kho lưu trữ được chia thành data warehouse cung cấp phân tích nhanh và tiện lợi, data lake rẻ và linh hoạt, và lakehouse bổ sung ACID cùng quản lý schema theo dạng bảng
- Xử lý dữ liệu mở rộng từ biến đổi SQL như dbt, xử lý cục bộ bằng pandas và DuckDB, xử lý batch phân tán bằng Spark, đến xử lý stream bằng Kafka và Flink; các orchestrator như Airflow quản lý thứ tự thực thi và khôi phục lỗi của những tác vụ độc lập
- Dữ liệu đã xử lý được dùng không chỉ cho dashboard mà còn cho nghiệp vụ bán hàng/hỗ trợ, phân tích ad hoc, machine learning, tính năng phân tích trong sản phẩm và bán dữ liệu; khi quy mô tăng lên, catalog/lớp semantic/lineage/governance trở thành nền tảng cốt lõi để duy trì ý nghĩa và trách nhiệm của dữ liệu
Phạm vi lập trình viên cần biết
- Đây là bản tổng quan dành cho lập trình viên do một kỹ sư phần mềm mới gia nhập công ty dữ liệu nhưng không có nền tảng liên quan biên soạn, nhằm hiểu công dụng của các công cụ và cách chúng tương tác với notebook
- Không đề cập đến cách tạo dashboard, kiến thức thống kê cơ bản, cách vận hành cụm Spark hay so sánh chuyên sâu từng sản phẩm trong cùng một nhóm
- Phân biệt các giai đoạn trong vòng đời mà từng công cụ đảm nhiệm bằng cách lần theo dữ liệu được sinh ra ở đâu, được xử lý, lưu trữ và hiển thị như thế nào
Bốn kiểu vị trí trong ngành dữ liệu
- Ranh giới vai trò thực tế thường mờ nhạt, đặc biệt ở công ty hoặc nhóm nhỏ, nhưng có thể chia thành bốn kiểu để hiểu toàn cảnh
- Nhóm phân tích diễn giải dữ liệu bằng SQL và bảng tính, rồi trực quan hóa insight
- Đại diện là Data analyst và BI analyst, sử dụng Tableau, Excel, v.v.
- Ví dụ: truy vấn dữ liệu khách hàng để tính tỷ lệ churn theo khu vực, tạo dashboard Tableau và đề xuất chiến dịch giữ chân khách hàng
- Nhóm khoa học xử lý các câu hỏi hoặc dự đoán sâu hơn báo cáo bề mặt thông qua thống kê, mô hình và thử nghiệm
- Đại diện là Data scientist, chủ yếu dùng Python, pandas, scikit-learn và notebook
- Có thể khám phá nguyên nhân churn, xây dựng mô hình khả năng churn theo từng khách hàng, rồi thiết kế và phân tích A/B test cho chiến dịch giữ chân
- Nhóm kỹ thuật thu thập, làm sạch, chuẩn hóa dữ liệu nguồn rồi nạp vào warehouse hoặc lake, đồng thời vận hành công cụ dữ liệu và cơ sở dữ liệu
- Đại diện là Data engineer, sử dụng Python, Apache Spark, cơ sở dữ liệu, warehouse và cloud
- Ví dụ: mở rộng kết quả phân tích thành pipeline reverse ETL có thể chạy lặp lại, hoặc hợp nhất dữ liệu giao dịch từ nhiều nguồn và quản lý schema, truy vấn, kiểm tra chất lượng
- Nhóm machine learning xây dựng và vận hành các mô hình AI, từ mô hình phân loại đến LLM
- Đây là nhóm gộp ML scientist và ML engineer; do hệ sinh thái công cụ riêng rất lớn nên không được trình bày chi tiết trong bài
- Họ lắp ghép dữ liệu huấn luyện cho mô hình gợi ý, huấn luyện và tinh chỉnh mô hình, triển khai dưới dạng API, rồi giám sát dự đoán và tái huấn luyện theo thay đổi hành vi
ETL và ELT
- ETL(Extract-Transform-Load) là luồng phổ biến: trích xuất dữ liệu nguồn, làm sạch hoặc kết hợp với dữ liệu khác, rồi nạp kết quả vào đích
- Thứ tự các bước không cố định và có thể lặp lại hoặc chồng lấn nhau
- ELT nạp dữ liệu nguồn vào warehouse trước, sau đó biến đổi ngay trong đó và lưu kết quả vào bảng riêng
- Chi phí có thể tăng do cần thêm dung lượng lưu trữ và tính toán
- Vì dữ liệu gốc vẫn còn, sau này có thể xử lý lại theo cách khác
Định dạng file và bộ nhớ
- CSV phù hợp với người dùng không chuyên kỹ thuật vì dễ truyền dữ liệu nhỏ và có thể mở bằng hầu hết phần mềm văn phòng
- Apache Parquet là định dạng file hướng cột, có tỷ lệ nén cao và có thể lưu trữ, truyền dữ liệu lớn hiệu quả
- Được hầu hết công cụ dữ liệu hỗ trợ nên đóng vai trò định dạng chung giữa các công cụ
- Apache ORC cũng giải quyết vấn đề tương tự
- Apache Avro là định dạng nhị phân hướng hàng, dùng để truyền bản ghi, đặc biệt trong xử lý stream
- Apache Arrow là định dạng in-memory tiêu chuẩn trên thực tế, được tối ưu cho xử lý và truyền zero-copy
- Parquet tập trung vào các file nhỏ và quét những mục cần thiết, còn Arrow tập trung vào tính toán thực tế bằng cách tận dụng lệnh CPU/GPU và cache
- Arrow dùng nhiều bộ nhớ hơn, nhưng truyền dữ liệu hiệu quả giữa các công cụ như pandas và DataFusion của Rust
- Có thể dùng làm backend tùy chọn của pandas; Polars và DataFusion được xây dựng trên Arrow ngay từ đầu
Data warehouse
- Data warehouse tương tự các cơ sở dữ liệu như PostgreSQL, MySQL, nhưng được tối ưu cho tải phân tích
- Cơ sở dữ liệu OLTP như MySQL phù hợp với việc tìm một hàng người dùng theo ID, còn warehouse OLAP phù hợp với tổng hợp theo cột, chẳng hạn tổng doanh thu theo khu vực hằng năm
- Theo truyền thống, đây là nơi lưu trữ cuối cùng của dữ liệu có cấu trúc đã được làm sạch, nhưng trong ELT cũng được dùng làm điểm nạp đầu tiên của dữ liệu thô
- Định dạng lưu trữ và engine truy vấn được liên kết chặt chẽ để cung cấp truy vấn BI/báo cáo nhanh, đổi lại chi phí cao nhất trong ba loại kho lưu trữ
- Các sản phẩm gồm Snowflake, BigQuery, Redshift
- Các lựa chọn mã nguồn mở/tự host gồm ClickHouse, Apache Doris, StarRocks
- Với dự án nhỏ, cơ sở dữ liệu truyền thống cũng có thể là đủ
Data lake
- Data lake gần giống một thư mục cloud quy mô lớn, lưu trữ dữ liệu có cấu trúc, bán cấu trúc và phi cấu trúc như CSV, Parquet, JSON, email, hình ảnh với mức xử lý tối thiểu
- Có thể xây dựng bằng cách đặt quy tắc đặt tên, phân vùng và chính sách truy cập trên Amazon S3, Google Cloud Storage, Azure Blob Storage, rồi lưu file vào đó
- Nếu không quản lý đúng cách, nó có thể trở thành đầm lầy dữ liệu(data swamp) khó tìm kiếm hoặc khai thác
- Các lựa chọn managed gồm Azure Data Lake và tính năng data lake của Snowflake
- Để truy vấn dữ liệu mà không phải trực tiếp tìm, tải xuống và parse dữ liệu, cần metadata catalog và query engine
- Catalog ghi lại tên bảng, schema và ánh xạ file
- Query engine đọc các file liên quan dựa trên metadata đó và thực thi truy vấn như SQL
- Catalog gồm Hive Metastore, AWS Glue Data Catalog, Unity Catalog
- Query engine gồm Apache Spark, Trino, Amazon Athena
Data lakehouse
- Data lakehouse bổ sung các tính năng gần với data warehouse lên trên data lake rẻ và linh hoạt
- Thành phần cốt lõi là định dạng bảng, quản lý cách lưu trữ giữa query engine và dữ liệu thô
- Xử lý ghi đồng thời, lỗi trong khi ghi và hỏng dữ liệu bằng ACID
- Dữ liệu bán cấu trúc cũng phải định nghĩa schema, còn dữ liệu hoàn toàn phi cấu trúc thì không hưởng lợi từ định dạng bảng
- Hỗ trợ tiến hóa schema và quản lý phiên bản
- Có thể làm truy vấn nhanh hơn nhờ tối ưu hóa index và partition
- Một số triển khai hỗ trợ time travel, cho phép truy vấn snapshot tại một thời điểm cụ thể
- Vì dựa trên data lake nên có thể rẻ hơn warehouse và không bị ràng buộc với một query engine cụ thể, nhưng khó so sánh giá trực tiếp một-một vì phải tính cả chi phí tính toán riêng
- Các định dạng bảng chính là Apache Iceberg, Delta Lake, Apache Hudi
- Các dịch vụ managed gồm Lakehouse for Apache Iceberg của Google, Databricks, IBM watsonx.data
Nguồn dữ liệu và thu thập dữ liệu
- Dữ liệu đi vào từ cơ sở dữ liệu ứng dụng như PostgreSQL·Mongo, API bên ngoài như Stripe, sự kiện phân tích trình duyệt, thiết bị IoT, v.v.
- Sau khi trích xuất có thể xử lý ngay, hoặc trong ELT có thể lưu bản gốc trước vào lake·lakehouse·warehouse tùy theo hình thức, kích thước và hạ tầng
- Script chuyên dụng thì linh hoạt, nhưng phải tự triển khai lại các đoạn mã kết nối lặp lại như xác thực, phân trang, xử lý lỗi
- Công cụ thu thập dữ liệu xử lý công việc lặp lại này bằng cách cấu hình connector nguồn và đích
- Change Data Capture (CDC) bắt các thao tác chèn·sửa·xóa từ log sao chép của cơ sở dữ liệu mà không cần truy vấn lặp lại bảng
- Các công cụ thu thập dữ liệu dùng nội bộ cho nguồn cơ sở dữ liệu
- Debezium được dùng rộng rãi như một thành phần mã nguồn mở độc lập
Ngôn ngữ xử lý dữ liệu
- Python là ngôn ngữ tiêu chuẩn de facto cho công việc dữ liệu, với cộng đồng lớn và hệ sinh thái thư viện native
- Các công cụ viết bằng ngôn ngữ khác cũng thường cung cấp binding Python; Apache DataFusion nền Rust là một ví dụ
- numpy cung cấp mảng đa chiều hiệu năng cao và là nền tảng của nhiều thư viện
- pandas là tiêu chuẩn de facto, cung cấp Series một chiều và DataFrame hai chiều
- Có thể trực quan hóa bằng seaborn·Plotly và tạo ứng dụng tương tác bằng streamlit
- Có thể chạy truy vấn SQL bằng DuckDB hoặc áp dụng các kỹ thuật machine learning của scikit-learn
- R được dùng trong học thuật; Java·Scala dùng trong các framework big data như Spark; Julia và Rust cũng được dùng cho công việc dữ liệu nhưng mức phổ biến thấp hơn Python
- SQL được dùng rộng rãi để truy vấn và biến đổi trên warehouse, nhưng cú pháp hơi khác nhau giữa các môi trường thực thi
Xử lý batch và thời gian thực
- Xử lý batch xử lý định kỳ các khối dữ liệu lớn, như tổng hợp doanh thu tháng trước, và phù hợp với tác vụ có thể chờ kết quả vài giờ hoặc vài ngày
- Xử lý thời gian thực dùng kiểu stream xử lý ngay khi dữ liệu đến, hoặc micro-batch như theo chu kỳ 20 giây
- Các pipeline mà tốc độ kết quả quan trọng, như phát hiện bot, dùng xử lý thời gian thực để nhận diện·chặn người dùng nhanh nhất có thể
Biến đổi dựa trên SQL
- dbt và SQLMesh định nghĩa biến đổi bằng câu lệnh SQL
selectvà biên dịch để chạy trên query engine thực tế - Hai công cụ này không trực tiếp xử lý dữ liệu mà đảm nhiệm điều phối biến đổi
- So với script Python tùy chỉnh, chúng chuẩn hóa cách biến đổi và có thể tách công việc phức tạp thành các model nhỏ có phụ thuộc
refcủa dbt tham chiếu đến model thay vì tên bảng hard-code, và chạy theo đúng thứ tự dựa trên đồ thị phụ thuộc- Kết quả thường được lưu trong cùng warehouse·lakehouse·lake với dữ liệu gốc, nhưng cũng có thể gửi đến đích khác tùy cấu hình query engine
DataFrame cục bộ và DuckDB
- DataFrame là trừu tượng mảng hai chiều để xử lý dữ liệu dạng bảng; trong Python, pandas được dùng rộng rãi nhất
- Các triển khai khác gồm Polars của Python·Rust, DataFusion của Rust, DataFrames.jl của Julia, data.frame của R, tablesaw của Java
- pandas, data.frame, tablesaw là kiểu eager execution, tính toán ngay khi gọi
- DataFusion và
LazyFramecủa Polars tích lũy phép toán thành kế hoạch logic rồi thực thi tại.collect()- Có thể tối ưu kế hoạch trước khi chạy, nên có khả năng nhanh hơn
- Thư viện cục bộ bị giới hạn bởi bộ nhớ và CPU
- pandas xử lý toàn bộ dữ liệu trong bộ nhớ nên bị ràng buộc bởi dung lượng RAM
- Streaming của Polars có thể xử lý dữ liệu lớn hơn RAM, nhưng một số phép toán cần đưa working set vào bộ nhớ
- DuckDB là cơ sở dữ liệu OLAP in-process, được gọi là “SQLite cho phân tích”
- Truy vấn CSV, Parquet, pandas DataFrame cục bộ bằng SQL mà không cần hạ tầng riêng
Xử lý phân tán quy mô lớn
- Khi vượt giới hạn của một máy đơn, dữ liệu được chia thành nhiều phần để xử lý song song trên cluster và scale out theo khối lượng công việc
- Apache Hadoop là công cụ tiêu biểu giai đoạn đầu nhưng hiện được xem là legacy và có thể thấy trong các môi trường cũ
- Apache Spark hiện là tiêu chuẩn de facto, phụ trách nạp dữ liệu, biến đổi, song song hóa và tối ưu hóa
- PySpark cung cấp DataFrame API và lớp tương thích pandas
- SparkR gần đây đã bị loại bỏ, đồng thời cũng cung cấp binding Java·Scala
- Có thể đọc và ghi nhiều loại kho lưu trữ, nên được dùng cho cả query engine trên data lake lẫn tác vụ biến đổi quy mô lớn
- Dask mở rộng mã Python lên cluster theo cách gần với API pandas·numpy quen thuộc
- Ray là framework tính toán phân tán đa dụng, đặc biệt được dùng nhiều trong huấn luyện ML
- Apache Flink cũng xử lý batch nhưng trọng tâm là xử lý stream
Event streaming và Kafka
- Xử lý stream phù hợp với các trường hợp cần kết quả ngay lập tức, như phát hiện gian lận thẻ tín dụng, hoặc các tác vụ xác thực sự kiện phân tích web khi chúng đến, làm giàu bằng thông tin địa lý IP rồi đưa vào ClickHouse
- Nếu xử lý ngay khi dữ liệu đến, có thể không cần lưu riêng payload thô cho đến lần chạy batch tiếp theo
- Apache Kafka là nền tảng event streaming phân tán, chịu lỗi, nhận sự kiện từ producer, lưu trữ và cho phép consumer đọc
- Khác với message queue, sự kiện không bị xóa dù consumer đã xác nhận; nhiều consumer có thể đọc lại nhiều lần cho đến khi quy tắc lưu giữ hết hạn
- Bản thân Kafka không xử lý dữ liệu; các worker riêng xử lý dữ liệu với vai trò consumer
- Kafka Connect kết nối Kafka với các hệ thống bên ngoài như cơ sở dữ liệu
- Kafka Streams là thư viện Java·Scala chạy trên Kafka để thực hiện biến đổi có trạng thái, tổng hợp theo cửa sổ và join
- Nó chạy nhúng trong ứng dụng và chỉ hoạt động với Kafka
- Các nền tảng event streaming khác gồm Apache Pulsar, Redpanda, AWS Kinesis Data Streams
Engine xử lý stream
- Apache Flink nhận định nghĩa về nguồn sự kiện và quy trình xử lý, rồi đảm nhiệm triển khai cluster, mở rộng và khôi phục khi lỗi
- Pipeline có thể bao gồm lọc, ánh xạ trường, tổng hợp theo cửa sổ, khử trùng lặp, xuất sang topic Kafka khác hoặc cơ sở dữ liệu
- Job đã triển khai không phải là batch kết thúc, mà tiếp tục xử lý các sự kiện mới
- Các lựa chọn khác gồm Spark Structured Streaming, Google Cloud Dataflow, Azure Stream Analytics
Điều phối tác vụ
- Khi các biến đổi dbt, job Spark và script tùy chỉnh tăng lên, orchestrator sẽ ghép các bước riêng lẻ thành một pipeline
- Khi định nghĩa từng tác vụ và phụ thuộc bằng code, chủ yếu là Python, nó tạo thành DAG, tức đồ thị có hướng không chu trình
- Orchestrator không trực tiếp xử lý dữ liệu mà điều phối việc chạy script Spark, gọi biến đổi dbt, gửi yêu cầu HTTP, v.v.
- Có thể dùng lịch chạy, sự kiện Kafka, chạy thủ công từ UI, yêu cầu HTTP hoặc trigger tạo bằng plugin
- Có thể chạy song song các tác vụ độc lập, chỉ thử lại bước bị lỗi rồi tiếp tục từ điểm đó
- Vì dành cho xử lý batch chạy từ đầu đến cuối, nó không phù hợp lắm với các pipeline stream luôn chạy; trong trường hợp đó sẽ dựa vào chính engine xử lý như Flink
- Các sản phẩm tiêu biểu là Apache Airflow, Dagster, Prefect, Luigi
- Luigi lâu đời hơn và hiện kém phổ biến hơn
Observability và giám sát chất lượng
- Quan sát dữ liệu được chia thành trạng thái pipeline và chất lượng của chính dữ liệu
- Giám sát pipeline kiểm tra việc có chạy hay không, lỗi và thời gian thực thi
- Giám sát dữ liệu kiểm tra độ mới, bất thường về khối lượng dữ liệu, thay đổi schema không báo trước, v.v.
- Với pipeline, có thể dùng các công cụ observability ứng dụng phổ biến như Prometheus, Grafana, ELK và các tính năng riêng của orchestrator
- Kiểm tra chất lượng dữ liệu có thể được triển khai bằng Great Expectations, nơi định nghĩa trực tiếp định dạng kỳ vọng, và dbt tests
- Các sản phẩm tự động học mẫu dữ liệu bình thường rồi phát hiện bất thường; ví dụ gồm Monte Carlo, Bigeye, Metaplane
Nạp dữ liệu lặp lại trong pipeline
- Đích nạp cuối cùng của ETL là warehouse, lake hoặc lakehouse, nhưng dữ liệu không chỉ được lưu một lần ở cuối pipeline mà được lưu nhiều lần dưới các dạng khác nhau
- Kiến trúc medallion chia mức độ tinh chỉnh trong cùng một kho lưu trữ thành ba tầng
- Bronze là dữ liệu thô được đưa vào nguyên trạng từ nguồn
- Silver là dữ liệu đã được làm sạch và chuẩn hóa qua sửa kiểu, khử trùng lặp, kết hợp nguồn, v.v.
- Gold là dữ liệu đã được tổng hợp và mô hình hóa cho mục đích cụ thể như dashboard hoặc báo cáo
- Nhà phân tích chủ yếu truy vấn bảng Gold, còn kỹ sư có thể đi xuống tới Bronze để debug pipeline
Mô hình hóa chiều
- Nếu cấu trúc medallion biểu thị mức độ tinh chỉnh dữ liệu, thì mô hình hóa chiều định hình các bảng trong warehouse
- Đây là phương pháp được phổ biến bởi cuốn 《The Data Warehouse Toolkit》 của Ralph Kimball, phân biệt giữa bảng fact và bảng dimension
- Bảng fact lưu một sự kiện hoặc chỉ số đo trên mỗi hàng, như đơn hàng, thanh toán, lượt xem trang
- Dài và hẹp, có nhiều số liệu và khóa ngoại đến bảng dimension, và liên tục tăng
- Bảng dimension lưu ngữ cảnh xảy ra sự kiện, như khách hàng, sản phẩm, ngày tháng
- Rộng hơn và thay đổi tương đối chậm
- Khi bảng fact ở trung tâm được các bảng dimension bao quanh, đó là star schema
- Cũng có snowflake schema được chuẩn hóa hơn, không liên quan đến sản phẩm Snowflake
- Grain định nghĩa một hàng đại diện cho điều gì: một đơn hàng, một mặt hàng trong đơn hàng hay một đơn hàng hằng ngày theo khách hàng
- Data mart là một phần của warehouse dành cho một đội hoặc chủ đề cụ thể như marketing, tài chính, và thường nằm ở tầng Gold
- Không phải đội nào cũng tuân thủ nghiêm ngặt; đôi khi họ tận dụng warehouse hiện đại tốc độ cao và chi phí lưu trữ thấp để tạo một bảng lớn duy nhất được phi chuẩn hóa rộng theo từng mục đích
OLAP thời gian thực cho ứng dụng
- Với dashboard nội bộ, bảng Gold trong warehouse là đủ, nhưng khi phục vụ nhiều người dùng ở mức mili giây, độ trễ truy vấn và chi phí theo từng truy vấn có thể không phù hợp
- Dữ liệu cần độ đồng thời cao và phản hồi nhanh, như phân tích hướng người dùng, giám sát nội bộ thời gian thực, bảng xếp hạng, mục thịnh hành, đo lường mức sử dụng, sẽ được chuyển sang cơ sở dữ liệu OLAP thời gian thực
- Các hệ thống thuộc nhóm này gồm Apache Druid, Apache Pinot, ClickHouse, Apache Doris; ClickHouse được dùng rộng rãi
Reverse ETL
- Reverse ETL gửi dữ liệu đã xử lý trong warehouse trở lại các công cụ vận hành như CRM
- Nếu tính giá trị vòng đời khách hàng từ dữ liệu Stripe rồi đưa vào HubSpot, đội bán hàng có thể thấy ngay các khách hàng giá trị cao
- Công cụ chuyên dụng liên kết bảng·cột với trường đích và xử lý lỗi, thử lại, giới hạn tốc độ, cảnh báo, đồng bộ tăng dần
- Các lựa chọn gồm Airbyte Data Activation, Fivetran Activations, Hightouch, RudderStack
- Fivetran Activations trước khi được mua lại có tên là Census
Danh mục dữ liệu và lớp ngữ nghĩa
- Danh mục dữ liệu dành cho con người chứa nguồn gốc dữ liệu, chủ sở hữu, chính sách truy cập và thông tin tìm kiếm, giúp gán ngữ cảnh nghiệp vụ cho các bảng và cột
- Mục đích khác với metastore dành cho công cụ truy vấn
- Unity Catalog, DataHub, OpenMetadata là những ví dụ tiêu biểu
- Lớp ngữ nghĩa lưu giữ các định nghĩa chuẩn về thực thể nghiệp vụ, quan hệ và chỉ số
- Thống nhất các vấn đề như mô hình khách hàng đến từ bảng và cột nào, những thị trường nào thuộc EMEA, doanh thu có loại trừ hoàn tiền hay không
- Khi chọn đúng thực thể và chỉ số trong công cụ BI hoặc tác nhân AI, lớp này sẽ chuyển thành truy vấn cần thiết hoặc cung cấp thông tin cần thiết để tạo truy vấn
- Ví dụ gồm LookML của Looker, Cube, dbt Semantic Layer và các tính năng ngữ nghĩa của Unity Catalog
Dòng dõi dữ liệu
- Dòng dõi dữ liệu (data lineage) theo dõi dữ liệu đã được biến đổi như thế nào khi đi qua các pipeline
- Có thể thu thập tự động từ DAG của orchestrator, phân tích cú pháp SQL biến đổi, cũng như sự kiện và metadata do các tác vụ xử lý phát ra
- Ở cấp bảng, ghi lại quan hệ rằng
gold.ordersđược tạo từsilver.ordersvàsilver.customers - Ở cấp cột, theo dõi cả quan hệ rằng
customers.life_time_valueđược tính từorders.totalvàsubscription_payments.amount - Được dùng để đánh giá tác động hạ nguồn của việc xóa cột, phân tích nguyên nhân gốc rễ của chỉ số sai và tuân thủ quy định về sử dụng thông tin định danh cá nhân
- Unity Catalog, DataHub và OpenMetadata hỗ trợ trực quan hóa dòng dõi, nhưng toàn bộ pipeline phải cung cấp dữ liệu theo dõi thông qua connector hoặc sự kiện thủ công
- Thay vì các định dạng riêng của từng nhà cung cấp, có thể dùng chuẩn OpenLineage được nhiều danh mục và công cụ xử lý hỗ trợ
Dashboard BI và báo cáo
- Dashboard và báo cáo là nơi tiêu thụ phổ biến nhất của pipeline dữ liệu, và ở các công ty nhỏ có thể gần như là trường hợp sử dụng duy nhất
- Công cụ BI kết nối với warehouse, lakehouse và cơ sở dữ liệu ứng dụng để cho phép tạo biểu đồ và dashboard mà không cần viết code
- Điểm cốt lõi là tự phục vụ, tức người dùng phi kỹ thuật có thể tự tạo hoặc khám phá biểu đồ trong UI mà không phải lần nào cũng nhờ nhà phân tích
- Có thể gửi báo cáo định kỳ qua email, Slack hoặc cảnh báo khi chỉ số vượt ngưỡng
- Tableau và Power BI được dùng rộng rãi trong các doanh nghiệp lớn, tập trung vào trực quan hóa mạnh mẽ và linh hoạt
- Looker xoay quanh lớp ngữ nghĩa LookML và phù hợp với các tổ chức kỹ thuật
- Metabase có thể thiết lập nhanh, kể cả tự host, và dễ tiếp cận với người dùng phi kỹ thuật
- Looker Studio là một sản phẩm riêng không dùng LookML, có ít tính năng hơn Looker và gần đây đã đổi tên lại thành Data Studio
Phân tích vận hành
- Phân tích vận hành cung cấp dữ liệu bên trong các ứng dụng mà những vai trò không chuyên phân tích sử dụng hằng ngày, thay vì báo cáo cho ban lãnh đạo
- Ví dụ sử dụng gồm:
- Đồng bộ tổng hợp mức sử dụng vào HubSpot để đội bán hàng upsell đúng khách hàng
- Đồng bộ đơn hàng gần đây, ticket hỗ trợ và gói giá vào Zendesk để đội hỗ trợ nắm được ngữ cảnh khách hàng
- Xây dựng ứng dụng nội bộ hiển thị tình hình áp dụng sản phẩm theo từng khách hàng cho đội customer success
- Reverse ETL là phương thức phân phối tiêu biểu, nhưng các ứng dụng Customer 360 nội bộ truy vấn trực tiếp warehouse cũng thuộc phân tích vận hành
Phân tích tức thời, khám phá và notebook
- Phân tích tức thời (ad-hoc analysis) dùng dữ liệu hiện có để điều tra các câu hỏi một lần, như nguyên nhân giảm đăng ký hoặc cohort gây hoàn tiền
- Phân tích khám phá là xem xét dữ liệu mà không có câu hỏi định sẵn để tìm insight
- Vì phép tính tiếp theo thay đổi tùy theo kết quả và phức tạp hơn các bộ lọc, tổng hợp đơn giản, chỉ dùng công cụ báo cáo thông thường có thể là không đủ
- Có thể dùng Python và pandas, Polars; UI SQL của warehouse; Spyder; RStudio, v.v.
- Notebook kết hợp các ô như Markdown, code và SQL trong một tệp, đồng thời đặt ảnh, biểu đồ tương tác và đầu ra bảng bên cạnh code
- Phù hợp để khám phá từng bước trong khi xem kết quả thực thi và trình bày kết quả
- Jupyter, Google Colab, Deepnote, marimo là những ví dụ tiêu biểu
- Các nền tảng như Databricks và Snowflake cũng cung cấp notebook riêng
Tiêu thụ dữ liệu trong machine learning
- ML là một lĩnh vực riêng với feature store, công cụ huấn luyện, theo dõi và triển khai, nhưng cũng là một nơi tiêu thụ dữ liệu chính
- Ngoài LLM, còn có các mô hình chuyên biệt như dự đoán rời bỏ, gợi ý, dự báo nhu cầu và phân khúc khách hàng; trước khi đưa vào production cần dữ liệu huấn luyện đã được tinh sạch
- Data scientist hoặc ML engineer lấy các feature như số đơn hàng trong 30 ngày gần nhất, số ngày kể từ lần đăng nhập cuối từ warehouse để huấn luyện và triển khai mô hình
- Kết quả dự đoán lại được đưa vào phân tích vận hành, như điểm rời bỏ trong CRM, hoặc gợi ý sản phẩm cho người dùng
Phân tích nhúng
- Phân tích nhúng cung cấp các phân tích như sản phẩm phổ biến, khu vực khách hàng và thứ hạng tìm kiếm ngay trong ứng dụng cho người bán trên marketplace
- Nếu chỉ có khoảng 5 biểu đồ định sẵn và bộ lọc hạn chế, có thể tự triển khai truy vấn, UI và thư viện biểu đồ
- Nếu người dùng cần thực hiện truy vấn phức tạp, có thể dùng công cụ BI như Metabase, Looker, Tableau hoặc các sản phẩm tập trung vào nhúng như Sisense, Luzmo
- Ứng dụng host phụ trách xác thực và phân quyền, còn công cụ nhúng xử lý UI truy vấn và render biểu đồ
Bán chính dữ liệu như một sản phẩm
- Dữ liệu có thể vượt ra ngoài vai trò nguyên liệu cho tính năng để trở thành chính sản phẩm
- Có thể thu thập, biến đổi và lập chỉ mục dữ liệu từ nhiều blockchain tiền mã hóa để bán quyền truy cập cho nhà phân tích, hoặc thu thập kết quả Google Search để bán cho chuyên gia SEO
- Để bán quyền truy cập dữ liệu và truy vấn, cần pipeline vững chắc thu thập đúng thời điểm và khả năng truy vấn hiệu năng cao
Quản trị dữ liệu
- Quản trị dữ liệu quản lý ai có thể truy cập dữ liệu nhạy cảm như thông tin định danh cá nhân, thông tin sức khỏe, cũng như lịch sử truy cập
- Bao gồm cả quyền sở hữu dữ liệu, xử lý dữ liệu cá nhân như quyền được quên, vị trí lưu trữ vật lý và thời hạn lưu giữ
- Các kỹ thuật như vai trò và kiểm soát truy cập của warehouse, thông tin quyền sở hữu trong danh mục, theo dõi việc sử dụng PII thông qua dòng dõi có thể hỗ trợ việc này
- Đây không chỉ là vấn đề kỹ thuật mà còn phụ thuộc nhiều vào con người và quy trình, đồng thời liên quan chặt chẽ đến các bộ phận pháp lý, tuân thủ và bảo mật
- Toàn bộ bức tranh dữ liệu có thể được nhìn như dòng chảy thu thập từ nguồn, lưu trữ, xử lý rồi sử dụng; dưới mỗi phạm trù, ngày càng có thêm nhiều công cụ và lựa chọn chi tiết
Chưa có bình luận nào.