Tự Dựng DATA WAREHOUSE - A1digihub.

4 thành phần chính trong Business Intelligence: Tự Dựng data warehouse – Phần 2

Như trong bài đầu phần 1 tôi có đề cập đến 1 trong các tác dụng của data warehouse trong marketing đó là tính toán CAC, CIR chi tiết. Tất nhiên đây không phải tác dụng duy nhất.

Có 1 hệ thống data warehouse bài bản còn giúp bạn phân tích được nhiều thứ khác, ví dụ phân tích conversion paths, assisted conversion (đến sale), phân tích trải nghiệm người dùng, dựng các mô hình dự đoán, vv và mây mưa. Tất cả những tính năng đó dựa trên một ưu điểm của data warehouse mà các phần mềm analytics hoặc Business Intelligence (as the creators claim) đơn lẻ không làm được: Tính Linh Hoạt

Tuy nhiên trước khi đi quá xa, tôi sẽ giới thiệu về concept xây dựng một hệ thống data warehouse cơ bản.

Một hệ thống BI bao gồm 4 thành phần chính:

1. Data sources (nguồn dữ liệu)

CRM, dữ liệu từ các nền tảng quảng cáo (Facebook, Google, Ad networks), Google Analytics, ERP, payment gateway…

Tùy thuộc vào việc bạn cần phân tích gì, bạn sẽ lựa chọn những nguồn dữ liệu phù hợp để tích hợp vào.

Tôi thường phân loại nguồn dữ liệu ra 3 nhóm chính:

  • Dữ liệu doanh thu
  • Các dữ liệu chi phí
  • Những dữ liệu hành vi (các hoạt động của nhân sự trong công ty, khách hàng và người dùng).

Tất nhiên việc phân chia này là do kinh nghiệm cá nhân, các bạn có thể phân chia theo cách nào mình thấy phù hợp.

Điều này là cần thiết vì bạn không thể khơi khơi quẩy ngay trong database của CRM, lỗi nhẹ thì quá tải hệ thống CRM, nặng thì đi tù. Hãy coi bước này giống như bạn copy database của CRM ra 1 chỗ khác để nghiên cứu.

Đối với dữ liệu doanh thu

Nguồn chính thường vẫn là từ CRM. CRM ngày nay thường ở dạng web-based, tức là có 1 website để bạn vào thao tác, và đằng sau nó có 1 database (let’s say MySQL). Công việc của chúng ta lúc này sẽ là ETL các dữ liệu từ database này về data warehouse của chúng ta.

Dữ liệu chi phí

Dữ liệu chi phí thường đến từ các hoạt động quảng cáo. Trong giới hạn bài này tôi chỉ nói đến các ads platform phổ biến ví dụ Facebook, Google. Để lôi được dữ liệu từ các platform này ra, phần mềm ETL của chúng ta cần kết nối được với API của Facebook, Google và họ có API để làm công việc đó tại đây:

Facebook for developers, AdWords API

Không cần bị ngợp nếu bạn đọc không hiểu gì, 1 phần mềm ETL phù hợp có thể làm thay bạn kha khá công việc rồi.

Nguồn dữ liệu hành vi

Nguồn dữ liệu hành vi thì đa dạng hơn, từ log của CRM (với hành vi của sales), issue logs (CSKH), system log (đối với phần mềm, app), Google analytics, appsflyer, mixpanel (đối với hành vi của users, visitors)

2. ETL

Cái này là 1 phần mềm có tác dụng Extract (trích xuất), Transform (biến đổi) và Load (đẩy) dữ liệu vào database

Có thể nói ETL là trái tim của data warehouse vì nó đảm bảo cho cả hệ thống vận hành trơn tru và chính xác. Vậy nên quyết định sử dụng ETL nào khá là quan trọng

ETL tôi chia làm 2 loại.

Loại 1

Để xử lý các dữ liệu nội bộ (từ CRM, logs ra database thô, từ database thô trộn tung tóe ra database tinh). Loại ETL này chủ yếu cần kết nối với các DBMS của công ty (MySQL, PostgreSQL, MongoDB, Bigquery, SQL server…), nhiều options để xử lý dữ liệu (có sẵn template xử lý, SQL, Javascript, Java, Python,…)

Hiện nay trên thị trường đang nổi nhất 2 bọn miễn phí, open source là Talend DI và Pentaho DI (của Hitachi Vantara). Theo đánh giá của cộng đồng và trải nghiệm của cá nhân tôi thì Pentaho DI dễ dùng và nhanh hơn Talend DI.

Loại 2

Để kéo dữ liệu từ các nguồn dữ liệu giao tiếp bằng API ví dụ như Facebook, Google. Loại ETL này cần maintain khá nhiều và yêu cầu hiểu biết sâu về API của bên cung cấp.
Do đó tốt nhất là nên tìm một dịch vụ ETL trả phí để người ta làm hộ mình phần này. Mấy cái tên nổi trên thị trường là Stitch Data, Alooma (Google mới mua lại), Panoply, Blendo, Fivetran… Các dịch vụ này đều có dùng thử miễn phí, tôi khuyên khích các bạn nên thử hết 1 lượt và cân đối về tính năng với giá trước khi quyết định.

Ngoài ra ở Việt Nam bạn có thể bắt đầu sử dụng bản dùng thử Tool A1 Analytics do team dev A1digihub thực hiện. Đây là một công cụ giúp hợp nhất dữ liệu từ Google, Facebook, nhiều kênh truyền thông ở Việt Nam trên một Data Warehouse để visualization dựa trên phương thức giao tiếp API. Để hiểu rõ hơn bạn có thể xem hình bên dưới

Hệ thống Tool A1 Analytics
Hệ thống Tool A1

Nếu bạn có 1 team dev xịn hoặc khối lượng dữ liệu của bạn kéo về quá lớn (1 tỷ bản ghi/tháng hoặc nhiều hơn) thì có thể cân nhắc đến 1 giải pháp ETL khác là Singer.io

Đây là bản open source của Stitch Data phát triển. Bạn có thể tự host nó và dùng để kết nối như Stitch (tất nhiên là với giao diện dòng lệnh). Singer.io còn phát triển 1 phiên bản miễn phí khác có giao diện đồ họa là Knots. Tuy nhiên tôi đã từng thử code có sẵn của Knots và nó không còn hỗ trợ Facebook Ads. Nếu muốn quẩy thì bạn sẽ phải tự upgrade.

3. Database

Thông thường, các hệ thống data warehouse sẽ dùng relational database management systems (RDBMS) để làm database. Nghe RDBMS có vẻ hơi xa lạ, nhưng thực ra nó rất gần gũi vì chắc các bạn đều biết MySQL (database của WordPress và nhiều web frameworks khác).

Với data warehouse, người ta có những lựa chọn khác như PostgreSQL (miễn phí, open source), Oracle Database, IBM DB2 (cho các dự án siêu to khổng lồ), hoặc những hybrid storage systems như Google Bigquery, Amazon Redshift.

Bạn có thể tưởng tượng nó giống như những file excel có các trường dữ liệu được chia thành cột (field), và thay vì lưu trong máy tính của bạn thì nó được lưu trong máy chủ.
Cá nhân tôi ưa thích dùng PostgreSQL cho các dự án tự quản lý database và Google Bigquery cho các dự án lớn nhưng lại hạn chế về tài nguyên con người và khách hàng không ngại đặt database trên Google Cloud.

4. Dashboards/Visualization Tools

Cái này thì còn đa dạng hơn rất nhiều

  • Miễn phí, open source: Metabase, Redash, Jupyter, Grafana…
  • Miễn phí, close source: Google Data Studio
  • Có phí: Tableau, Power BI, Sisense, Looker (mới bị Google mua lại)…
  • Hoặc bạn có thể bắt đầu sử dụng Dashboards A1 Analytics miễn phí

Đường đi của dữ liệu sẽ như sau: Nguồn dữ liệu -> ETL dữ liệu -> đẩy vào databases thô (nơi lưu dữ liệu thô) -> ETL lần 2 -> databases đã xử lý -> Dashboard.

Hệ thống xử lý dữ liệu tạo ra Dashboard A1 Digihub

Phần tiếp theo tôi sẽ nói rõ về cách tổ chức database và review 1 số visualization tools

Nguồn: Cuong Tran