1. Trang chủ
  2. » Luận Văn - Báo Cáo

ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang

58 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Tác giả Lê Kiều Anh
Người hướng dẫn TS. Trần Việt Trung
Trường học Đại học Bách khoa Hà Nội
Chuyên ngành Khoa học máy tính
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 58
Dung lượng 1,39 MB

Cấu trúc

  • CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI (10)
    • 1.1 Đặt vấn đề (9)
    • 1.2 Mục tiêu và phạm vi đề tài (9)
    • 1.3 Định hướng giải pháp (10)
    • 1.4 Bố cục đồ án (10)
  • CHƯƠNG 2. KHẢO SÁT VÀ PHÂn TÍCH YÊU CẦU (12)
    • 2.1 Giới thiệu về nền tảng dữ liệu khách hàng (12)
    • 2.2 Tổng quan yêu cầu bài toán (13)
  • CHƯƠNG 3. CÔNG NGHỆ SỬ DỤNG (16)
    • 3.1 Snowplow – Công cụ thu thập dữ liệu (15)
    • 3.2 Google BigQuery – Công cụ lưu trữ dữ liệu (17)
    • 3.3 DBT – Công cụ xử lý dữ liệu (18)
    • 3.4 Metabase - Công cụ trực quan hóa dữ liệu (19)
    • 3.5 Google Kubernetes Engine – Hạ tầng triển khai hệ thống (20)
  • CHƯƠNG 4. PHÂN TÍCH, THIẾT KẾ VÀ TRIỂN KHAI HỆ THỐNG (24)
    • 4.1 Phân tích và thiết kế hệ thống (23)
      • 4.1.1 Mô hình dữ liệu thu thập (23)
      • 4.1.2 Sơ đồ hệ thống (24)
      • 4.1.3 Các thành phần trong hệ thống (26)
    • 4.2 Triển khai hệ thống (30)
      • 4.2.1 Module thu thập dữ liệu (30)
      • 4.2.2 Module lưu trữ và xử lý dữ liệu (44)
      • 4.2.3 Module trực quan hóa dữ liệu (47)
    • 5.1 Kết quả thu thập dữ liệu (50)
    • 5.2 Kết quả lưu trữ và xử lý dữ liệu (51)
    • 5.3 Kết quả trực quan hóa dữ (51)
  • CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (56)
    • 6.1 Kết luận (55)
    • 6.2 Hướng phát triển (55)
  • TÀI LIỆU THAM KHẢO (0)

Nội dung

ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang TÓM TẮT NỘI DUNG ĐỒ ÁN Hiện nay, sự phát triển mạnh mẽ của các nền tảng thương mại điện tử dẫn để sự bùng nổ về lượng dữ liệu từ khách hàng. Vấn đề này đòi hỏi doanh nghiệp cần phải xây dựng một hệ thống thu thập, xử lý và lưu trữ dữ liệu lớn từ nhiều nguồn nhằm tận dụng lượng dữ liệu này để hiểu khách hàng của mình. Để giải quyết vấn đề nêu trên, trong đồ án này, em tiến hành nghiên cứu và triển khai một hệ thống nhằm thu thập, lưu trữ và xử lý dữ liệu khách hàng từ trang thương mại điện tử. Đồng thời hệ thống cũng đưa ra được cái nhìn tổng quan về các nhóm khách hàng được phân khúc từ dữ liệu thu thập được. Hệ thống được xây dựng dựa trên các công cụ, công nghệ dữ liệu lớn như Snowplow để thu thập dữ liệu, Bigquery để lưu trữ dữ liệu, DBT giúp chuyển đổi dữ liệu ngay trong data warehouse, và Metabase là công cụ dùng để trực quan hóa dữ liệu thu thập được. Đóng góp chính của đồ án này là xây dựng một hệ thống thu thập, tổ chức và lưu trữ dữ liệu trong phạm vi to lớn của nền tảng dữ liệu khách hàng. Cụ thể, hệ thống sẽ thu thập các thông tin quan trọng về khách hàng như thông tin cá nhân và các hành vi của khách hàng trên trang web thương mại điện tử của doanh nghiệp. Sau đó tổ chức lưu trữ và phân tích dữ liệu phục vụ bài toán phân khúc khách hàng giá trị cao.

GIỚI THIỆU ĐỀ TÀI

Đặt vấn đề

Trong bối cánh hiện nay, sự phát triển mạnh mẽ của thương mại điện tử và sự gia tăng nhanh chóng của các nguồn thông tin trực tuyến dẫn đến các doanh nghiệp đang đối mặt với một lượng lớn dữ liệu khách hàng Những dữ liệu này có thể là dữ liệu về hành vi mua sắm, giao dịch và các thông tin cơ bản về khách hàng, và khi chúng được tổ chức và khai thác hiệu quả sẽ mang lại lợi ích rất lớn cho tổ chức, doanh nghiệp Để có thể tận dụng được những thông tin này, tổ chức và doanh nghiệp cần thiết phải xây dựng một hệ thống giúp thu thập, xử lý và lưu trữ dữ liệu Đồng thời, hệ thống cũng cần phải có khả năng phân tích dữ liệu, giúp doanh nghiệp có được cái nhìn tổng quan về khách hàng của mình.

Khi đã hiểu về khách hàng và đưa được khách hàng về từng nhóm có chung đặc điểm thì doanh nghiệp có thể thực hiện các bước tiếp theo nhằm tăng doanh thu và mở rộng kinh doanh với chi phí tiết kiệm hơn Không chỉ dừng lại ở đó, bằng cách áp dụng các công nghệ học máy và trí tuệ nhân tạo trong quá trình phân tích dữ liệu, hệ thống có thể giúp cho doanh nghiệp nhìn thấy được xu hướng tiêu dùng và dự đoán được nhu cầu của khách hàng trong tương lai, từ đó đưa ra được các chiến lược dài hạn.

Mục tiêu và phạm vi đề tài

Ngày nay, với sự phát triển của công nghệ đặc biệt là các công nghệ về dữ liệu lớn, các doanh nghiệp có thể dễ dàng hơn trong việc thu thập dữ liệu về khách hàng Tuy vậy, đối mặt với lượng dữ liệu ngày càng nhiều và xuất phát từ nhiều nguồn khác nhau là một thách thức lớn trong việc thu thập, xử lý, lưu trữ cũng như việc quản lý dữ liệu khách hàng Trên thị trường cũng có những công cụ hỗ trợ doanh nghiệp trong việc quản lý dữ liệu khách hàng, ví dụ như CRM – Hệ thống quản lý quan hệ khách hàng Đây là hệ thống kết hợp tất cả các hoạt động bao gồm bán hàng, tiếp thị, hỗ trợ khách hàng CRM cho phép doanh nghiệp dựa trên dữ liệu mà hệ thống thu thập được để có những cái nhìn mới hơn về khách hàng, từ đó đề xuất được những chiến dịch phù hợp để cải thiện hiệu quả hoạt động doanh nghiệp Tuy nhiên phạm vi thu thập của CRM còn hạn chế và chỉ tập trung vào việc thu thập và quản lý dữ liệu liên quan đến quan hệ và cách tương tác của khách hàng đối với doanh nghiệp Để khắc phục hạn chế này của CRM, doanh nghiệp cần một hệ thống có thể thu thập và lưu trữ tập trung các thông tin liên quan đến khách hàng một cách đầy đủ bao gồm cả dữ liệu trong CRM sẵn có của doanh nghiệp. Đó chính là CDP, một nền tảng dữ liệu khách hàng, giúp thu thập và lưu trữ dữ liệu

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI khách hàng một cách đầy đủ và toàn vẹn. Đồ án này tiến hành xây dựng một nền tảng dữ liệu khách hàng giúp thu thập,lưu trữ và xử lý dữ liệu về hành vi, giao dịch của người dùng, và sử dụng dữ liệu này để phân khúc khách hàng giá trị cao Mục tiêu khi thực hiện đồ án này là xây dựng được một nền tảng mạnh mẽ sử dụng các công nghệ về dữ liệu lớn để thu thập và xử lý dữ liệu khách hàng, đồng thời phân tích dữ liệu, giúp cho doanh nghiệp có được cái nhìn tổng quan về các nhóm khách hàng để từ đó tối ưu hóa các chiến lược kinh doanh sau này.

Định hướng giải pháp

Trong đồ án này, em tiến hành xây dựng một nền tảng dữ liệu khách hàng Cụ thể, hệ thống được xây dựng sẽ tiến hành thu thập các hành vi của người dùng trên trang web sử dụng trình thu thập của Snowplow [1] Các dữ liệu hành vi này sẽ được xác thực và làm giàu tại trình xác thực và làm giàu Sau đó dữ liệu sẽ được trình tải dữ liệu tải vào Bigquery để lưu trữ dưới dạng các sự kiện Để dữ liệu có thể đi từ trình thu thập đến trình tải dữ liệu, hệ thống sử dụng Google pub/sub như là một đường truyền trung gian giữa các thành phần.

Sau khi được lưu trữ tại BigQuery [2], dữ liệu sẽ được xử lý và chuyển đổi ngay tại nơi lưu trữ thông qua DBT [3] Dữ liệu sau khi chuyển đổi sẽ được đưa vào mô hình học máy Kmeans để tiến hành phân khúc khách hàng dựa trên các thuộc tính về giao dịch để xác định khách hàng giá trị cao Sau cùng, dữ liệu về các nhóm phân khúc sẽ được trực quan hóa trên Metabase [4] Việc xử lý dữ liệu được tiến hành theo lô.

Bố cục đồ án

Phần còn lại của báo cáo đồ án tốt nghiệp này được tổ chức như sau.

Chương 2 sẽ trình bày giới thiệu tổng quan về nền tảng dữ liệu khách hàng; và phân tích những yêu cầu cụ thể mà đề tài hướng đến giải quyết.

Chương 3 giới thiệu các công nghệ được sử dụng để xây dựng hệ thống Phần này sẽ trình bày về cách sử dụng, thành phần cấu thành, chức năng và ưu điểm, nhược điểm của 5 công cụ sử dụng để triển khai hệ thống, đó là: Snowplow-công cụ thu thập dữ liệu, Google Bigquery-công cụ lưu trữ dữ liệu, DBT-công cụ transform dữ liệu, Metabase-công cụ trực quan hóa dữ liệu và Google Kubernetes Engine-hạ tầng triển khai hệ thống.

Chương 4 trình bày phân tích, thiết kế và triển khai hệ thống Chương này tiến hành phân tích bài toán cần giải quyết trong hệ thống, từ đó đưa ra hướng giải quyết về công nghệ cũng như thiết kế chi tiết cho hệ thống Chương này cũng trình bày về cách thức triển khai hệ thống: Các cài đặt và sử dụng Snowplow trong thu thập dữ liệu; quá trình lưu trữ và xử lý dữ liệu; và kết nối với công cụ để trực quan hóa dữ liệu trên các biểu đồ.

Chương 5 sẽ trình bày kết quả của quá trình thu thập, lưu trữ, xử lý và trực quan hóa dữ liệu trên biểu đồ.

Chương 6 trình bày kết luận, những đóng góp nổi bật của đề tài cũng như những hạn chế mà hệ thống đang gặp phải, đồng thời đưa ra hướng phát triển trong tương lai của hệ thống.

KHẢO SÁT VÀ PHÂn TÍCH YÊU CẦU

Giới thiệu về nền tảng dữ liệu khách hàng

Nền tảng dữ liệu khách hàng là phần mềm tích hợp dữ liệu khách hàng từ nhiều nguồn Nền tảng này tạo ra một giao diện thống nhất, tập trung tất cả các hoạt động, tương tác và điểm tiếp xúc của khách hàng với các sản phẩm và dịch vụ của doanh nghiệp, để từ đó có cơ sở xây dựng một cái nhìn hoàn chỉnh, nhất quán và duy nhất về từng khách hàng.

Hình 2.1: Các nguồn dữ liệu của CDP

Dữ liệu khách hàng trong nền tảng dữ liệu khách hàng có thể là:

• Dữ liệu về hành vi: chẳng hạn như hành động được thực hiện trên website, trong app, hoặc thông qua các kênh khác như live chat hay trợ lý kỹ thuật số, số lượng và thời lượng tương tác cũng như tần suất của những tương tác đó.

• Dữ liệu giao dịch: chẳng hạn như mua hàng và hoàn trả hàng của khách hàng, từ hệ thống thương mại điện tử.

• Dữ liệu nhân khẩu học: chẳng hạn như tên, ngày tháng năm sinh và địa chỉ của khách hàng.

• Mức độ tương tác: Lượng thời gian mà người dùng tương tác qua ứng dụng, trang web, email hoặc trên mạng xã hội.

• Mức độ hài lòng: bằng cách thu thập từ các cuộc khảo sát, phỏng vấn trực tiếp để đánh giá được độ hài lòng của từng khách hàng về sản phẩm, dịch vụ.

CDP thu thập các thông tin trên từ nhiều nguồn khác nhau như CRM, hệ thống quản lý email, trang web, ứng dụng di động, với mục tiêu không chỉ là tổ chức dữ liệu một cách có hệ thống mà còn là tạo ra một cái nhìn toàn diện về khách hàng.

Hình 2.2: Cách thức hoạt động của CDP

Quá trình hoạt động của CDP bắt đầu bằng việc tích hợp và xử lý dữ liệu Các thông tin từ các nguồn khác nhau, có thể ở định dạng và chất lượng khác nhau, được chuyển đổi và hợp nhất để tạo ra một hồ sơ khách hàng duy nhất, tránh các trùng lặp và không nhất quán Dữ liệu khách hàng sau đó được lưu trữ trong một kho lưu trữ an toàn và có thể truy cập Tính an toàn và bảo mật của dữ liệu là mối quan tâm hàng đầu để đảm bảo rằng thông tin cá nhân của khách hàng được bảo vệ Điểm mạnh của CDP nằm ở khả năng tạo ra cái nhìn 360 độ về khách hàng.

Thông qua việc phân tích dữ liệu, doanh nghiệp có thể hiểu rõ hơn về hành vi, sở thích, và nhu cầu của khách hàng Điều này là cơ sở để tối ưu hóa chiến lược tiếp thị, tăng cường tương tác, và cung cấp dịch vụ khách hàng cá nhân hóa CDP cũng tích hợp chặt chẽ với các hệ thống khác như tiếp thị tự động và quảng cáo để đảm bảo rằng thông tin khách hàng được chuyển động mượt mà qua các chiến lược tiếp thị đa kênh.

Tổng quan yêu cầu bài toán

Từ những thông tin chung về nền tảng dữ liệu khách hàng ở trên, em tiến hành xây dựng một hệ thống tương tự với các yêu cầu cụ thể sau đây.

Về yêu cầu chức năng, nền tảng dữ liệu khách hàng cần cung cấp khả năng thu

CHƯƠNG 2 KHẢO SÁT VÀ PHÂN TÍCH YÊU CẦU thập, lưu trữ và xử lý dữ liệu về hành vi của khách hàng trên trang web Dữ liệu thu được cần được biến đổi để phù hợp với bài toán là xác định khách hàng giá trị cao, hay phân khúc khách hàng dựa trên giá trị mà họ mang lại cho doanh nghiệp.

Dữ liệu này sẽ được đưa vào mô hình học máy để phân khúc khách hàng thành các nhóm Ngoài ra, hệ thống cũng cần tiến hành xử lý các dữ liệu liên quan đến từng phân khúc để đưa ra cái nhìn tổng quan về các nhóm khách hàng thông qua trực quan hóa dữ liệu.

Về yêu cầu phi chức năng, hệ thống cần có tính khả mở và chịu tải cao, do lượng dữ liệu khách hàng lớn và tăng lên hàng giờ Đồng thời dữ liệu khách hàng được lưu trữ cần được cập nhật thường xuyên để đảm bảo tính đúng đắn và nhất quán của dữ liệu.

Trong chương 1 và chương 2, đồ án đã trình bày tổng quan hiện trạng và yêu cầu của bài toán Ở chương 3 này, đồ án sẽ giới thiệu về các công nghệ sử dụng để xây dựng hệ thống bao gồm Snowplow để thu thập dữ liệu, Google BigQuery để lưu trữ dữ liệu, công nghệ chuyển đổi dữ liệu DBT, công nghệ trực quan hóa dữ liệu Metabase và cuối cùng là hạ tầng triển khai thành phần thu thập GKE.

3.1 Snowplow – Công cụ thu thập dữ liệu

Snowplow là một hệ thống theo dõi và phân tích dữ liệu mã mở nguồn, được thiết kế để cung cấp khả năng theo dõi toàn diện và linh hoạt cho các ứng dụng web và di động Sử dụng Snowplow, doanh nghiệp có thể theo dõi mọi tương tác của người dùng trên nền tảng của mình và thu thập dữ liệu đa dạng từ nhiều nguồn khác nhau. Điều độc đáo của Snowplow là khả năng tùy chỉnh linh hoạt của nó, cho phép người dùng xác định và theo dõi các sự kiện cụ thể phù hợp với nhu cầu cụ thể của họ Hệ thống này sử dụng mô hình thu thập dữ liệu theo thời gian thực, giúp cung cấp thông tin chi tiết và ngay lập tức về cách người dùng tương tác với ứng dụng và trang web.

Snowplow không chỉ giúp doanh nghiệp theo dõi hiệu suất và sự tương tác của người dùng, mà còn cung cấp dữ liệu chi tiết hữu ích để phân tích và đưa ra quyết định chiến lược Với khả năng tích hợp dữ liệu từ nhiều nguồn và hỗ trợ cho việc xây dựng các ứng dụng phức tạp, Snowplow là một công cụ quan trọng giúp doanh nghiệp hiểu rõ hơn về khách hàng và tối ưu hóa trải nghiệm của họ trên các nền tảng số.

Kiến trúc dưới đây là luồng hoạt động cơ bản của một hệ thống Snowplow.

CÔNG NGHỆ SỬ DỤNG

Snowplow – Công cụ thu thập dữ liệu

Snowplow là một hệ thống theo dõi và phân tích dữ liệu mã mở nguồn, được thiết kế để cung cấp khả năng theo dõi toàn diện và linh hoạt cho các ứng dụng web và di động Sử dụng Snowplow, doanh nghiệp có thể theo dõi mọi tương tác của người dùng trên nền tảng của mình và thu thập dữ liệu đa dạng từ nhiều nguồn khác nhau. Điều độc đáo của Snowplow là khả năng tùy chỉnh linh hoạt của nó, cho phép người dùng xác định và theo dõi các sự kiện cụ thể phù hợp với nhu cầu cụ thể của họ Hệ thống này sử dụng mô hình thu thập dữ liệu theo thời gian thực, giúp cung cấp thông tin chi tiết và ngay lập tức về cách người dùng tương tác với ứng dụng và trang web.

Snowplow không chỉ giúp doanh nghiệp theo dõi hiệu suất và sự tương tác của người dùng, mà còn cung cấp dữ liệu chi tiết hữu ích để phân tích và đưa ra quyết định chiến lược Với khả năng tích hợp dữ liệu từ nhiều nguồn và hỗ trợ cho việc xây dựng các ứng dụng phức tạp, Snowplow là một công cụ quan trọng giúp doanh nghiệp hiểu rõ hơn về khách hàng và tối ưu hóa trải nghiệm của họ trên các nền tảng số.

Kiến trúc dưới đây là luồng hoạt động cơ bản của một hệ thống Snowplow.

CHƯƠNG 3 CÔNG NGHỆ SỬ DỤNG

Hình 3.1: Kiến trúc của Snowplow

• Trình theo dõi (Trackers): thực hiện tracking và tạo các dữ liệu sự kiện và gửi chúng nó trình thu thập (Collector) Snowplow cung cấp nhiều loại Trackers có thể thu thập dữ liệu ở trang web, điện thoại, máy tính, máy chủ và cả hệ thống nhúm IoT Thêm vào đó, Snowplow còn cung cấp webhooks cho phép phần mềm thứ ba có thể gửi dữ liệu đến Collector để tổng hợp và phân tích.

• Dữ liệu sự kiện sau khi được trình thu thập (Collector) thu thập sẽ được lưu trữ và sau đó gửi đến trình làm giàu (Enrich).

• Trình làm giàu sẽ tiến hành làm sạch dữ liệu và xác thực mỗi sự kiện dựa trên lược đồ đã định nghĩa trước của đó, đảm bào sự kiện thỏa mãn đúng lược đồ.

Khi một sự kiện không thỏa mãn việc xác thực, nó sẽ bị đẩy xuống luồng dữ liệu xấu (bad data stream) Điều này giúp cho Snowplow có thể thực thi lại các sự kiện bị sai nếu cần.

• Sau khi được xác thực, mỗi sự kiện sẽ được làm giàu bởi trình làm giàu dữ liệu.

• Dữ liệu sau khi được làm giàu sẽ được đẩy xuống luồng thời gian thực Lúc này dữ liệu có thể được chuyển tiếp đến các ứng dụng khác để thực thi các công việc đòi hỏi thời gian thực.

• Trình tải dữ liệu (Loaders) sau đó sẽ tải dữ liệu khỏi luồng thời gian thực đến các đích được xác định trong luồng, ví dụ như các data warehouse (Redshift, Snowflake, BigQuery, Databricks) hay data lake (S3, GCS, ADLS/OneLake).

• Khi dữ liệu đến được đích đã chọn Từ đây, chúng ta có thể tiến hành xử lý và chuyển đổi dữ liệu nhằm mục đích phân tích hoặc các mục đích khác.

Sử dụng Snowplow mang lại nhiều tính năng nổi bật như sau.

Khả năng mở rộng: Snowplow cần có khả năng mở rộng để theo dõi hàng tỷ sự kiện của khách hàng mà không ảnh hưởng đến hiệu suất của ứng dụng của bạn (ví dụ: trang web) hoặc làm cho việc phân tích tất cả những sự kiện đó trở nên khó khăn sau này.

Lịch sử sự kiện vĩnh viễn: Sự kiện của Snowplow nên được lưu trữ trong một kho dữ liệu đơn giản, không liên quan, không thể thay đổi Dữ liệu sự kiện gốc của bạn không bao giờ bị nén, ghi đè hoặc bị hỏng bởi Snowplow.

Truy cập trực tiếp đến từng sự kiện: có thể truy cập trực tiếp đến dữ liệu sự kiện gốc của Snowplow một cách chi tiết Không giống như các giải pháp khác, dữ liệu không được trung gian hóa bởi một nhà cung cấp thứ ba, hoặc một API chậm, hoặc một giao diện chỉ cung cấp tổng hợp.

Phân tách nhiệm vụ: Việc theo dõi sự kiện và phân tích sự kiện nên là hai hệ thống riêng biệt, chỉ nối liền một cách lỏng lẻo Do đó, Snowplow có thể được sử dụng để cung cấp dữ liệu cho bất kỳ quy trình phân tích nào bạn muốn.

Hỗ trợ mọi phân tích: Snowplow cần làm cho việc các nhà phân tích kinh doanh,nhà khoa học dữ liệu và kỹ sư có thể trả lời bất kỳ câu hỏi kinh doanh nào họ muốn,bằng cách sử dụng một loạt các công cụ phân tích càng rộng càng tốt, bao gồm cảHọc Máy.

Google BigQuery – Công cụ lưu trữ dữ liệu

BigQuery là kho dữ liệu được quản lý hoàn toàn bởi Google, giúp quản lý và phân tích dữ liệu bằng các tính năng tích hợp sẵn như học máy, phân tích không gian địa lý và thông tin kinh doanh Kiến trúc phi máy chủ của BigQuery cho phép sử dụng truy vấn SQL để trả lời các câu hỏi lớn nhất của tổ chức mà không cần quản lý cơ sở hạ tầng Công cụ phân tích phân tán, có thể mở rộng của BigQuery cho phép bạn truy vấn hàng terabyte trong vài giây và petabyte trong vài phút.

BigQuery tối đa hóa tính linh hoạt bằng cách tách công cụ điện toán phân tích dữ liệu khỏi các lựa chọn lưu trữ Bạn có thể lưu trữ và phân tích dữ liệu của mình trong BigQuery hoặc sử dụng BigQuery để đánh giá dữ liệu của bạn ở nơi dữ liệu đó tồn tại Truy vấn liên kết cho phép bạn đọc dữ liệu từ các nguồn bên ngoài trong khi truyền trực tuyến hỗ trợ cập nhật dữ liệu liên tục Các công cụ mạnh mẽ như BigQuery ML và BI Engine cho phép bạn phân tích và hiểu dữ liệu đó.

Giao diện BigQuery bao gồm giao diện bảng điều khiển Google Cloud và công cụ dòng lệnh BigQuery Các nhà phát triển và nhà khoa học dữ liệu có thể sử dụng thư viện máy khách với chương trình quen thuộc bao gồm Python, Java, JavaScript và Go, cũng như API REST và API RPC của BigQuery để chuyển đổi và quản lý

CHƯƠNG 3 CÔNG NGHỆ SỬ DỤNG dữ liệu Trình điều khiển ODBC và JDBC cung cấp khả năng tương tác với các ứng dụng hiện có bao gồm các công cụ và tiện ích của bên thứ ba.

DBT – Công cụ xử lý dữ liệu

DBT (Data Build Tool) là một công cụ mã nguồn mở phổ biến trong cộng đồng phân tích dữ liệu và quy trình xử lý dữ liệu hiện đại Được thiết kế để giải quyết các thách thức của quy trình ELT (Extract – Load - Transform), DBT tập trung vào bước "Transform" để đơn giản hóa và tối ưu hóa quá trình chuyển đổi dữ liệu Công cụ này có khả năng tích hợp mạnh mẽ với các nền tảng dữ liệu trên đám mây, như BigQuery, Snowflake, và Redshift, và sử dụng ngôn ngữ truy vấn SQL để mô tả logic biến đổi.

Hình 3.2: Minh họa DBT Pipeline

Một trong những điểm mạnh đáng chú ý của DBT là sự dễ sử dụng Với việc sử dụng SQL, một ngôn ngữ gần gũi với đa số nhà phân tích dữ liệu, DBT loại bỏ rào cản kỹ thuật, giúp họ tập trung vào logic biến đổi dữ liệu thay vì các khía cạnh kỹ thuật phức tạp Sự tích hợp chặt chẽ với Git giúp quản lý mã nguồn và quy trình phát triển, giảm thiểu rủi ro sai sót khi các thay đổi được áp dụng.

Trong quy trình ETL, DBT đảm nhận vai trò quan trọng trong bước chuyển đổi dữ liệu Sau khi dữ liệu được trích xuất và tải vào hệ thống lưu trữ, DBT thực hiện các biến đổi phức tạp bằng SQL Điều này bao gồm việc làm sạch, biến đổi và chuẩn hóa dữ liệu để đảm bảo tính nhất quán và đúng đắn trong quy trình xử lý.

DBT cung cấp nhiều loại materializations, cho phép người dùng lựa chọn chiến lược xây dựng truy vấn SQL cho mỗi mô hình Tính linh hoạt của DBT thể hiện qua các loại materializations như Table, View, Incremental, Snapshot, và Materialized View, giúp người dùng tối ưu hóa quá trình xây dựng và quản lý mô hình dữ liệu của họ.

Các tính năng như sử dụng Jinja trong SQL, xác định thứ tự thực hiện các model,DBT Document, và DBT Test đều đóng vai trò quan trọng trong quá trình phát triển và kiểm thử dự án Jinja trong SQL mang lại khả năng linh hoạt và tái sử dụng, trong khi DBT Test giúp đảm bảo tính đúng đắn của các truy vấn SQL trong các model.

DBT không chỉ giảm bớt công việc lặp lại và giảm thiểu việc phải viết mã boilerplate, mà còn cung cấp các tính năng như DBT Document để quản lý tài liệu cho các model, DBT Test để kiểm thử tính đúng đắn của dữ liệu, và quản lý gói cho phép sử dụng và chia sẻ các gói mã nguồn mở.

Trong đồ án của mình, em chủ yếu sử dụng materializations như Table và Incre- mental, tận dụng tính linh hoạt của DBT trong xử lý các biến đổi dữ liệu từ những bảng nhỏ đến những bảng lớn, giảm thiểu thời gian thực thi. Đối với các dự án lớn, DBT giúp quản lý mã nguồn thông qua tích hợp Git, tự động hóa quá trình biên dịch và triển khai, cũng như hỗ trợ việc tạo và kiểm soát phiên bản của tài liệu cho các model thông qua DBT Document.

Metabase - Công cụ trực quan hóa dữ liệu

Metabase là một công cụ thông tin kinh doanh mã nguồn mở mà bạn có thể kết nối với nhiều cơ sở dữ liệu phổ biến Metabase cho phép bạn đặt câu hỏi về dữ liệu của mình và hiển thị câu trả lời dưới dạng biểu đồ cột hoặc bảng chi tiết, tùy thuộc vào cách hiển thị nào là phù hợp.

Hình 3.3: Minh họa vị trí của Metabase trong một data pipeline

Metabase hỗ trợ phân tích dữ liệu và chia sẻ chúng một cách dễ dàng Metabase có giao diện thân thiện, dễ sử dụng với cả những người dùng không có nhiều kiến thức về SQL, và có cả những tính năng cho những user có kiến thức tốt về SQL.

Không cần sử dụng SQL hoặc bất kỳ mã lập trình nào, bất kỳ ai cũng có thể đưa ra các kết luận có ý nghĩa về dữ liệu bằng cách đặt câu hỏi hoặc tóm tắt về dữ liệu mà không cần kiến thức kỹ thuật sâu Công cụ này cho phép áp dụng bộ lọc cho dữ liệu và dễ dàng duyệt qua bảng hoặc trực quan hóa để nhanh chóng tìm thông tin.

Việc tạo đồ thị và bảng là dễ dàng, giúp trực quan hóa thông tin để dễ hiểu.

CHƯƠNG 3 CÔNG NGHỆ SỬ DỤNG

Metabase cũng hỗ trợ tạo đồ thị hoặc bộ lọc màu sắc trong bảng, giúp người dùng nhanh chóng nắm bắt ý nghĩa của dữ liệu Bộ lọc vùng cũng có thể được áp dụng khi dữ liệu trở nên phức tạp Khi cần xử lý dữ liệu phức tạp hơn, người dùng có thể sử dụng truy vấn thông qua giao diện người dùng hoặc sử dụng SQL để giải quyết những khía cạnh phức tạp của dữ liệu Công cụ cũng hỗ trợ thiết lập cảnh báo, thông báo khi dữ liệu trở nên không kiểm soát.

Metabase không chỉ giúp chia sẻ dữ liệu mà còn cho phép người dùng kết nối với các cơ sở dữ liệu khác nhau để thu thập thông tin từ nhiều nguồn Điều này tạo điều kiện để đưa ra kết luận về dữ liệu với sự hỗ trợ của các biểu đồ và trực quan hóa.

Metabase đóng vai trò quan trọng trong việc chia sẻ và làm cho dữ liệu trở nên rõ ràng trong cộng đồng doanh nghiệp Mã nguồn mở của nó cung cấp linh hoạt cho việc điều chỉnh và sử dụng nó theo cách mà người dùng mong muốn Công cụ này nhanh chóng, linh hoạt và có sẵn trên di động, giúp người dùng hiểu rõ luồng dữ liệu một cách dễ dàng.

Trong đồ án này, em sử dụng Metabase để trực quan hóa dữ liệu về các phân khúc khách hàng từ các bảng trong Bigquery.

Google Kubernetes Engine – Hạ tầng triển khai hệ thống

GKE [5] là một triển khai do Google quản lý của nền tảng quản lý container mã nguồn mở Kubernetes Kubernetes được phát triển bởi Google, lấy cảm hứng từ nhiều năm kinh nghiệm vận hành công việc sản xuất có quy mô lớn trên Borg, hệ thống quản lý cụm nội bộ của họ.

GKE là lựa chọn lý tưởng nếu chúng ta cần một nền tảng cho phép cấu hình cơ sở hạ tầng chạy ứng dụng đóng gói bằng container, bao gồm mạng, scaling, phần cứng và bảo mật GKE cung cấp sức mạnh vận hành của Kubernetes trong khi quản lý nhiều thành phần cơ bản, như bảng điều khiển kiểm soát và các node, giúp giảm gánh nặng quản lý cho người dùng.

Một cụm GKE bao gồm một bảng điều khiển (control plane) và các máy worker được gọi là nodes Bảng điều khiển và nodes tạo nên hệ thống điều phối cụm Kubernetes GKE Autopilot quản lý toàn bộ cơ sở hạ tầng cơ bản của các cụm, bao gồm bảng điều khiển, nodes và tất cả các thành phần hệ thống Nếu sử dụng chế độ tiêu chuẩn của GKE, GKE quản lý bảng điều khiển và các thành phần hệ thống, trong khi người dùng sẽ quản lý các nodes Đồ án này cũng sử dụng GKE Autopilot để quản lý cụm Kubernetes để tận dụng được hết lợi thế của GKE.

Sơ đồ dưới đây mô tả kiến trúc của một cụm GKE:

Hình 3.4: Kiến trúc của cụm GKE

Nhìn chung, việc sử dụng GKE làm hạ tầng triển khai mang lại nhiều lợi ích cho tổ chức và doanh nghiệp khi triển khai và quản lý các ứng dụng dựa trên môi trường ảo hóa container Dưới đây là một số lợi ích chính của GKE.

• Quản lý dễ dàng: GKE cung cấp một môi trường quản lý dễ sử dụng để triển khai, mở rộng và quản lý các ứng dụng dựa trên container Việc quản lý môi trường sản xuất trở nên thuận tiện với các tính năng như tự động mở rộng, cập nhật không gián đoạn và quản lý phiên bản ứng dụng.

• Tự Động Hóa: GKE hỗ trợ tự động hóa nhiều nhiệm vụ quản lý, bao gồm cả việc tự động mở rộng cụm, quản lý phiên bản ứng dụng và khôi phục lỗi tự động Điều này giúp giảm thiểu công việc thủ công và tối ưu hóa hiệu suất.

• Tích Hợp Mạnh Mẽ với Dịch Vụ Google Cloud: GKE tích hợp tốt với các dịch vụ khác của Google Cloud, như Cloud Storage, BigQuery, và Cloud Pub/Sub, mở rộng khả năng phát triển và tích hợp với các dịch vụ mức cao khác.

• Bảo Mật: GKE cung cấp các tính năng bảo mật như quản lý nhận dạng và quyền hạn, mã hóa dữ liệu trong chuyển và lưu trữ, và kiểm soát truy cập mạng, giúp bảo vệ ứng dụng và dữ liệu của bạn.

• Khả Năng Mở Rộng: Với khả năng mở rộng linh hoạt, GKE cho phép bạn điều chỉnh kích thước của cụm một cách dễ dàng theo nhu cầu của ứng dụng và người dùng.

CHƯƠNG 3 CÔNG NGHỆ SỬ DỤNG

• Hiệu Suất Cao: GKE sử dụng cơ sở hạ tầng của Google Cloud, bao gồm các máy chủ mạnh mẽ và mạng toàn cầu, giúp đảm bảo hiệu suất ổn định và đáng tin cậy cho các ứng dụng của bạn.

Chương 4 này trình bày về thiết kế và triển khai hệ thống nhằm thu thập, lưu trữ, xử lý và trực quan hóa dữ liệu sử dụng các công nghệ đã giới thiệu ở chương 3.

4.1 Phân tích và thiết kế hệ thống 4.1.1 Mô hình dữ liệu thu thập

Trước khi tiến hành thu thập dữ liệu, hệ thống cần xác định dữ liệu cần thu thập.

Có thể chia dữ liệu thu thập thành hai loại chính: dữ liệu thực thể và dữ liệu hành vi Từ hai loại dữ liệu này, hệ thống sẽ tổng hợp lại để tạo thành một dữ liệu hoàn chỉnh gọi là các sự kiện và lưu trữ tại một bảng duy nhất trong data warehouse.

Dữ liệu thực thể trên trang thương mại điện tử, trong đồ án xây dựng nền tảng dữ liệu khách hàng cho ngành hàng thời trang, sẽ gồm có 2 loại thực thể là người dùng và sản phẩm Sau đây là các bảng mô ta một số thông tin cơ bản về 2 thực thể này:

Thuộc tính Kiểu dữ liệu Mô tả user_id integer, null định danh của user first_name string, null tên của user last_name string, null họ của user phone_number string, null số điện thoại của user email string, null email của user address string, null địa chỉ của user

Bảng 4.1: Thông tin user_context

Thực thể user_context là thực thể trực tiếp thực hiện các hành động trên trang web Trong thực thể này có trường thông tin quan trọng nhất là user_id, đây là định danh của người dùng khi đã đăng ký vào hệ thống.

PHÂN TÍCH, THIẾT KẾ VÀ TRIỂN KHAI HỆ THỐNG

Phân tích và thiết kế hệ thống

Trước khi tiến hành thu thập dữ liệu, hệ thống cần xác định dữ liệu cần thu thập.

Có thể chia dữ liệu thu thập thành hai loại chính: dữ liệu thực thể và dữ liệu hành vi Từ hai loại dữ liệu này, hệ thống sẽ tổng hợp lại để tạo thành một dữ liệu hoàn chỉnh gọi là các sự kiện và lưu trữ tại một bảng duy nhất trong data warehouse.

Dữ liệu thực thể trên trang thương mại điện tử, trong đồ án xây dựng nền tảng dữ liệu khách hàng cho ngành hàng thời trang, sẽ gồm có 2 loại thực thể là người dùng và sản phẩm Sau đây là các bảng mô ta một số thông tin cơ bản về 2 thực thể này:

Thuộc tính Kiểu dữ liệu Mô tả user_id integer, null định danh của user first_name string, null tên của user last_name string, null họ của user phone_number string, null số điện thoại của user email string, null email của user address string, null địa chỉ của user

Bảng 4.1: Thông tin user_context

Thực thể user_context là thực thể trực tiếp thực hiện các hành động trên trang web Trong thực thể này có trường thông tin quan trọng nhất là user_id, đây là định danh của người dùng khi đã đăng ký vào hệ thống.

Thuộc tính Kiểu dữ liệu Mô tả product_id string định danh của sản phẩm product_name string tên của sản phẩm price integer giá của sản phẩm category string loại sản phẩm brand string nhãn hàng của sản phẩm

Bảng 4.2: Thông tin product_context Đây là thực thể đại diện cho đối tượng sản phẩm mà khách hàng thực hiện các hành động trên nó như xem sản phẩm, thêm sản phầm vào giỏ hàng,

CHƯƠNG 4 PHÂN TÍCH, THIẾT KẾ VÀ TRIỂN KHAI HỆ THỐNG

Dữ liệu hành vi được thu thập trong phạm vi đồ án này là các hành vi mà người dùng (user_context) thực hiện đối với sản phẩm (product_context), được đặt tên là product_action Các hành vi này bao gồm: xem sản phẩm, thêm sản phẩm vào giỏ hàng, xóa sản phẩm khỏi gió hàng, thanh toán sản phẩm Các thông tin trong product_action:

Thuộc tính Kiểu dữ liệu Mô tả action string hành vi của user extra string thông tin bổ sung nếu có

Bảng 4.3: Thông tin product_action

Kết hợp dữ liệu thực thể và dữ liệu hành vi, ta sẽ được dữ liệu về sự kiện, gọi là event Sau đây là các thông tin trong bảng event:

Thuộc tính Kiểu dữ liệu Mô tả event_id string định danh của sự kiện event_time timestamp thời gian xảy ra sự kiện event_type string loại hành động của user product_id string định danh của sản phẩm brand string nhãn hàng của sản phẩm price integer giá của sản phẩm user_id string định danh của user domain_userid string định danh của user trên cookie

Bảng 4.4: Thông tin sự kiện (event)

Kiến trúc tổng quan của hệ thống như sau:

Hình 4.1: Kiến trúc tổng quan hệ thống

Module thu thập dữ liệu: Chức năng của thành phần này là thu thập dữ liệu từ trang web sau đó tiến hành xác thực và làm giàu dữ liệu, cuối cùng load dữ liệu vào nơi lưu trữ Thành phần này bao gồm: trình theo dõi (Web tracker) là những tracking code được nhúng vào website, trình thu thập (Collector), trình xác thực và làm giàu (Validator & Enrich) và trình tải dữ liệu vào Bigquery (Bigquery loader).

Module lưu trữ và xử lý dữ liệu: Sau khi dữ liệu được tải vào Bigquery từ thành phần thu thập trước đó, dữ liệu sẽ được xử lý và chuyển đổi xử dụng DBT Ngoài các chuyển đổi thông thường để tạo các bảng phục vụ cho việc trực quan hóa dữ liệu, tại đây, DBT tiến hành xây dựng một mô hình học máy để phân khúc khách

CHƯƠNG 4 PHÂN TÍCH, THIẾT KẾ VÀ TRIỂN KHAI HỆ THỐNG hàng thành các nhóm, trong đó có nhóm khách hàng giá trị cao.

Mô đun trực quan hóa dữ liệu: Thành phần này thực hiện truy xuất dữ liệu đã chuyển đổi từ Bigquery và đưa ra một số các biểu đồ trực quan hóa dữ liệu xoay quanh các phân khúc khách hàng đã tạo từ bước trước sử dụng công cụ Metabase.

4.1.3 Các thành phần trong hệ thống a, Module thu thập dữ liệu

Kiến trúc chi tiết của thành phần thu thập dữ liệu như sau:

Hình 4.2: Kiến trúc tổng quan hệ thống

Trình theo dõi (Web Tracker): Thực hiện nhúng các mã theo dõi vào trong trang web để bắt sự kiện người dùng và thu thập dữ liệu về sự kiện đó theo lược đồ đã định nghĩa trước trong Iglu Server Các sự kiện này có thể là xem sản phẩm, thêm sản phẩm vào giỏ hàng, xóa sản phẩm khỏi giỏ hàng hay thanh toán sản phẩm.

Sau đó các sự kiện này sẽ được gửi theo thời gian thực đến trình thu thập dữ liệu (Collector) để xử lý.

Trình thu thập (Collector): Trình thu thập nhận các sự kiện từ trình theo dõi gửi đến rồi lần tiến hành kiểm tra xem dữ liệu có đúng về định dạng hay có đủ các trường thông tin cân thiết hay không Nếu kiểm tra thành công, dữ liệu sẽ được đẩy vào topic raw data của Google Pub/Sub Ngược lại, nếu dữ liệu không hợp lệ, nó sẽ được đẩy vào topic bad data của Google Pub/Sub.

Trình làm giàu (Enrich): Trình làm giàu lấy dữ liệu từ topic raw data của Google

Pub/Sub, tiến hành làm sạch và xác thực dữ liệu dựa trên lược đồ đã định nghĩa trước của đó, đảm bảo sự kiện thỏa mãn đúng lược đồ Khi một sự kiện không thỏa mãn việc xác thực này, nó sẽ bị đẩy vào topic bad data Sự kiện thỏa mãn việc xác thực sẽ được làm giàu bằng cách thêm các thông tin liên quan bổ sung cho dữ liệu.

Sau đó dữ liệu được đưa vào topic enrich.

Triển khai hệ thống

Như đã giới thiệu ở phần trước về thiết kế và các thành phần trong hệ thống, phần này sẽ đi vào thực hiện triển khai từng thành phần của hệ thống một cách cụ thể.

4.2.1 Module thu thập dữ liệu Để triển khai hệ thống đến người dùng, em sử dụng Google Kubernetes Engine để chạy các thành phần trong thu thập dữ liệu Như đã giới thiệu ở chương 3,Kubernetes có khả năng tự động hóa việc triển khai, quản lý và mở rộng các ứng dụng được đóng gói trong container Nó cung cấp các tính năng như tự động tạo,tính năng cân bằng tải, tự động mở rộng và khôi phục khi gặp lỗi Điều này giúp hệ thống có thể chạy một cách ổn định và có khả năng chịu lỗi cao Đặc điểm này của Kubernetes phù hợp đối với yêu cầu của nền tảng dữ liệu khách hàng trong đồ án này.

Trước khi triển khai các thành phần trong module thu thập dữ liệu, em tiến hành tạo một cụm Kubernetes trên Google Cloud Platform (GCP) với 4 nodes, mỗi node có các thông số như sau:

Hình 4.7: Bảng thông số của mỗi node trong cụm Kubernetes

Do đồ án chỉ mô phỏng hệ thống thực tế nên việc dùng các node có cấu hình cao hơn là không cần thiết và tốn chi phí.

Sau khi đã dựng được một cụm Kubernetes như đã nói ở trên, em tiến hành xây dựng và cấu hình cho từng thành phần trong module thu thập dữ liệu, các thành phần này được thể hiện ở hình dưới đây.

Thành phần theo dõi - Web Tracker Trang web triển khai trong đồ án này được lập trình từ framework Django của ngôn ngữ Python, vì vậy em sẽ sử dụng các mã Python Tracker để bắt các sự kiện xảy ra trên trang web Các mã này sẽ được nhúng trong trang web và bắt các hành động mà người dùng thực hiện trên giao diện.

Trong đồ án này, thành phần theo dõi sẽ được triển khai phía backend Đầu tiên cần khởi tạo Tracker trên trang web. d e f i n i t _ t r a c k e r ( r e q u e s t ) :c o l l e c t o r _ u r l = ’ h t t p : / / c o l l e c t o r ’ e = E m i t t e r ( c o l l e c t o r _ u r l )

CHƯƠNG 4 PHÂN TÍCH, THIẾT KẾ VÀ TRIỂN KHAI HỆ THỐNG s = S u b j e c t ( ) s e t _ p l a t f o r m ( " web " ) s s e t _ l a n g ( " en " ) s e t _ u s e r _ i d ( r e q u e s t u s e r i d) c o o k i e _ d a t a = r e a d _ s p _ c o o k i e ( r e q u e s t ) s s e t _ d o m a i n _ s e s s i o n _ i d ( c o o k i e _ d a t a [ ’ s e s s i o n _ i d ’ ] ) s s e t _ d o m a i n _ u s e r _ i d ( c o o k i e _ d a t a [ ’ d o m a i n _ u s e r _ i d ’

Sau đó tiến hành thêm các tracking code vào các thư mục view.py của từng model trong framework Django của backend Ví dụ dưới đây là đoạn code bắt sự kiện xem sản phẩm. t r a c k e r = i n i t _ t r a c k e r ( s e l f r e q u e s t ) p r o d u c t _ v i e w _ e v e n t = s e l f _ d e s c r i b i n g _ j s o n

Do hệ thống được triển khai trong đồ án này cần thông tin cookies về do- main_userid, nhưng Python Tracker của Snowplow chưa hỗ trợ tự động tạo cookies mà tính năng này chỉ có khi sử dụng JavaScript Tracker nên em tiến hành khởi tạo thêm một Javascript Tracker tại template base.html của trang web để tự động tạo cookie.

CHƯƠNG 4 PHÂN TÍCH, THIẾT KẾ VÀ TRIỂN KHAI HỆ THỐNG n = l c r e a t e E l e m e n t ( o ) ; g = l g e t E l e m e n t s B y T a g N a m e ( o ) [ 0 ] ; n a s y n c = 1 ; n s r c = w ; g p a r e n t N o d e i n s e r t B e f o r e ( n , g ) ; }

} ( window , document , " s c r i p t " , " / / cdn j s d e l i v r n e t / gh / snowplow / sp−j s−a s s e t s @ 2 1 0 2 / s p j s " , " snowplow " ) ) ; window snowplow ( ’ n e w T r a c k e r ’ , ’ s p ’ , ’ h t t p : / / c o l l e c t o r ’

, { a p p I d : ’ t r a c k e r −gen−c o o k i e ’ , d i s c o v e r R o o t D o m a i n : t r u e , c o o k i e S a m e S i t e : ’ Lax ’ , / / Recommended c o n t e x t s : { webPage : t r u e / / d e f a u l t , c a n be o m i t t e d

Thành phần liên kết – Google Pub/Sub [6]Thành phần này liên kết các thành phần trong module thu thập dữ liệu (ngoại trừ thành phần theo dõi) bằng cơ chế publish/subscribe Tức là khi truyền dữ liệu giữa hai thành phần, một thành phần là publisher sẽ đẩy dữ liệu vào topic, sau đó thành phần là subscriber sẽ dọc dữ liệu từ topic này và thực hiện các xử lý khác. Đầu tiên, tiến hành tạo các topic sau:

• sp-bad-topic: chứa các sự kiện không được xác thực thành công ở trình thu thập và trình làm giàu của hệ thống.

• sp-bq-bad-rows-topic: chứa các sự kiện bị lỗi, không tải được vào dữ liệu.

• sp-bq-loader-server-failed-inserts-topic: chứa các dữ liệu không tải được vào BigQuery bởi Loader nhưng có thể được tải lại bởi Repeater.

• sp-loader-server-types-topic: là cổng giao tiếp giữa Loader và Mutator, thông báo cho Mutator biết cần phải thêm cột nào vào BigQuery.

• sp-enriched-topic: chứa các dữ liệu sau khi được làm giàu.

• sp-raw-topic: chứa các dữ liệu sau khi được xác thực thành công bởi Collector.

Ví dụ câu lệnh tạo topic g c l o u d p u b s u b t o p i c s c r e a t e sp−bad−t o p i c

Sau đó tạo các subsciptions cho mỗi topic, có thể hiểu đơn giản, subscriptions được sử dụng để đọc dữ liệu trong topic tương ứng Các subscriptions này sau đó sẽ được gán cho các thành phần trong module.

Ví dụ câu lệnh tạo subscriptions: g c l o u d p u b s u b s u b s c r i p t i o n s c r e a t e sp−e n r i c h −s e r v e r −− t o p i c = sp−raw−t o p i c −−e x p i r a t i o n −p e r i o d = n e v e r

Như vậy, ta đã xây dựng được thành phần liên kết, việc tiếp theo tại mỗi thành phần khác là khai báo để đọc và ghi dữ liệu vào các topic sao cho phù hợp.

Thành phần thu thập – Collector Trước khi triển khai thành phần này cũng như các thành phần phía sau đó, do thực hiện trên GCP nên cần thiết phải tạo service account cho mỗi thành phần để chúng có thể thực hiện các hành động lên các dịch vụ của GCP như Google Pub/Sub hay BigQuery Cụ thể cần tạo những service account và quyền của mỗi service account như sau:

• sp-bq-loader-server: BigQuery Data Editor, Logs Writer, Pub/Sub Publisher, Pub/Sub Subscriber, Pub/Sub Viewer, Storage Object Viewer.

• sp-enrich-server: Logs Writer, Pub/Sub Publisher, Pub/Sub Subscriber, Pub-

/Sub Viewer, Storage Object Viewer.

• sp-collector-server: Logs Writer, Pub/Sub Publisher, Pub/Sub Viewer

Câu lệnh dùng để tạo service account và gán quyền tương ứng. g c l o u d iam s e r v i c e −a c c o u n t s c r e a t e sp−bq−l o a d e r −s e r v e r

−−d i s p l a y −name= " sp−bq−l o a d e r −s e r v e r " g c l o u d p r o j e c t s add−iam−p o l i c y −b i n d i n g snowplow−cdp \

−−member= " s e r v i c e A c c o u n t : sp−bq−l o a d e r−server@snowplow− cdp iam g s e r v i c e a c c o u n t com " \

−−r o l e = " r o l e s / b i g q u e r y d a t a E d i t o r " Để thành phần thu thập và các thành phần khác có thể sử dụng được service account thì trong khi triển khai các thành phần lên Kubernetes cần thêm các biến môi trường chứa thông tin của service account, tương ứng thông qua việc sử dụngSecret trong Kubernetes.

CHƯƠNG 4 PHÂN TÍCH, THIẾT KẾ VÀ TRIỂN KHAI HỆ THỐNG

Ví dụ Kubernetes Secret lưu trữ thông tin kết nối service account: a p i V e r s i o n : v1 k i n d : S e c r e t m e t a d a t a : name : b q l o a d e r −s e r v i c e a c c o u n t −c r e d s n a m e s p a c e : snowplow t y p e: Opaque d a t a : s a _ j s o n : |

Thành phần thu thập (Collector) được triển khai trên 2 pod của cụm Kubernetes để tăng khả năng chịu tải của hệ thống Em sử dụng một phiên bản Snowplow Collector được tải xuống từ Docker hub và thực hiện deploy lên Kubernetes với các cấu hình trong configmap như sau: k i n d : ConfigMap a p i V e r s i o n : v1 m e t a d a t a : name : c o l l e c t o r −c o n f i g m a p n a m e s p a c e : snowplow d a t a : c o n f i g h o c o n : | c o l l e c t o r { i n t e r f a c e = " 0 0 0 0 " p o r t = 8181 s t r e a m s { good = sp−raw−t o p i c bad = sp−bad−t o p i c u s e I p A d d r e s s A s P a r t i t i o n K e y = f a l s e s i n k { e n a b l e d = g o o g l e−pub−s u b g o o g l e P r o j e c t I d = " snowplow−cdp " b a c k o f f P o l i c y { m i n B a c k o f f = 1000 m a x B a c k o f f = 1000 t o t a l B a c k o f f = 10000 m u l t i p l i e r = 1

Trong đó, config.hoccon là tệp cấu hình mặc định của Snowplow Collector.

Theo như cấu hình này, thành phần thu thập sẽ đẩy dữ liệu vào Google Pub/Sub đến 2 topic:

• sp-raw-topic: chứa các dữ liệu thu thập thành công.

• sp-bad-topic: chứa các sự kiện thu thập bị lỗi, không thành công Ví dụ như các sự kiện có kiểu dữ liệu khác với mô tả trong lược đồ.

Thành phần làm giàu – Enrich Trước khi triển khai thành phần Enrich cần triển khai Iglu Server để lưu trữ các lược đồ được định nghĩa trước và lưu trữ vào một cơ sở dữ liệu Postgresql.

Tiến hành tạo khởi tạo các bảng trong cơ sở dữ liệu như sau.

CREATE TYPE k e y _ a c t i o n AS ENUM ( ’CREATE ’ , ’DELETE ’ ) ;

CREATE TYPE s c h e m a _ a c t i o n AS ENUM ( ’READ ’ , ’BUMP ’ , ’ CREATE ’ , ’CREATE_VENDOR ’ ) ;

CREATE TABLE i g l u _ p e r m i s s i o n s ( a p i k e y UUID NOT NULL, v e n d o r VARCHAR( 1 2 8 ) , w i l d c a r d BOOL NOT NULL, s c h e m a _ a c t i o n s c h e m a _ a c t i o n , k e y _ a c t i o n k e y _ a c t i o n [ ] NOT NULL,

Kết quả thu thập dữ liệu

Đồ án triển khai một trang thương mại điện tử ngành hàng thời trang để tiến hành thu thập các sự kiện liên quan đến hành vi của người dùng Sau đây là giao diện chính của trang web:

Hình 5.1: Trang thương mại điện tử ngành hàng thời trang

Khi người dùng nhấp chuột để xem sản phẩm, thêm sản phầm vào giỏ hàng, xóa sản phẩm khỏi giỏ hàng hay thanh toán sản phẩm, các sự kiện này sẽ ngay lập tức được thu thập và lưu trữ tại bảng events của Bigquery.

Sau đây là một số mẫu bản ghi (vì bảng events có nhiều thông tin nên không thể hiển thị hết toàn bộ trên hình):

Hình 5.2: Một số bản ghi trong dữ dự kiện liệu thu thập

Kết quả lưu trữ và xử lý dữ liệu

Dữ liệu lưu trữ trong BigQuery được xử lý trong thời gian ngắn tại mỗi lần chạy, do trong mô hình đã tận dụng triệt để tính năng của DBT, đặc biệt là tính năng sử dụng model incremental hỗ trợ biến đổi dữ liệu nhanh chóng hơn khi không phải chạy lại toàn bộ dữ liệu trong mỗi lần biến đổi.

Kết quả đánh giá của mô hình phân khúc khách hàng dựa trên số nhóm đặt trước được thể hiện trong hình sau.

Hình 5.3: Kết quả đánh giá mô hình phân khúc

Kết quả trực quan hóa dữ

Sau khi được xử lý, chuyển đổi và phân khúc khách hàng, dữ liệu sẽ được lưu trữ tại các bảng trong Bigquery và tiến hành trực quan hóa dữ liệu bằng Metabase.

Dưới đây là kết quả của trực quan hóa dữ liệu:

Biểu đồ Số lượng người dùng theo từng nhóm: Sử dụng biểu đồ hình tròn, giúp doanh nghiệp nắm được số lượng người dùng đang sử dụng dịch vụ của mình trên từng phân khúc.

Hình 5.4: Biểu đồ Số lượng người dùng theo từng nhóm

Biểu đồ Tỉ lệ bỏ giỏ hàng: thể hiện tỉ lệ xóa sản phẩm ra khỏi giỏ hàng của từng phân khúc Nhận thấy trong biểu đồ này, tỉ lệ này rất nhỏ ở nhóm khách hàng giá trị cao.

CHƯƠNG 5 KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ

Hình 5.5: Biểu đồ Tỉ lệ bỏ giỏ hàng

Biểu đồ Giao dịch gần đây nhất: biểu diễn giá trị trung bình của số ngày kể từ lần giao dịch gần nhất đến hiện tại của từng nhóm khách hàng trên đầu người.

Nhận thẩy, đối với khách hàng giá trị cao, tỉ lệ này nhỏ hơn nhiều so với hai nhóm còn lại.

Hình 5.6: Biểu đồ Giao dịch gần đây nhất

Biểu đồ Tần suất giao dịch: biểu diễn giá trị trung bình của số lần giao dịch trên đầu người đối với từng nhóm khách hàng.

Hình 5.7: Biểu đồ Tần suất giao dịch

Biểu đồ Chi tiêu trên đầu người: biểu diễn trung bình chi tiêu của một người trong mỗi phân khúc Từ biểu đồ này có thể thấy, khách hàng giá trị cao đang có chi tiêu trung bình cao hơn hẳn hai nhóm còn lại.

Hình 5.8: Biểu đồ Chi tiêu trên đầu người

Biểu đổ Tỉ lệ chuyển đổi giữa các hành động: Biểu diễn tỉ lệ chuyển đổi từ xem sản phẩm đến thêm sản phẩm vào giỏ hàng và thanh toán sản phẩm.

CHƯƠNG 5 KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ

Hình 5.9: Biểu đổ Tỉ lệ chuyển đổi giữa các hành động

6.1 Kết luận Đồ án đã giải quyết được bài toán đặt ra là Xây dựng một nền tảng dữ liệu khách hàng để xác định khách hàng giá trị cao trong ngành hàng thời trang Nền tảng được xây dựng có khả năng thu thập dữ liệu một cách liên tục và theo thời gian thực và đưa dữ liệu lưu trữ tại BigQuery Sau đó dữ liệu sẽ được xử lý và biến đổi theo một lịch trình được thiết đặt sẵn, đồng thời nền tảng cũng tận dụng được các công cụ có sẵn mã nguồn mở để tiến hành phân khúc khách hàng ngày trên công cụ xử lý dữ liệu ban đầu sử dụng SQL mà không cần phải xây dựng thêm một thành phần khác Nền tảng cũng có khả năng cung cấp cho doanh nghiệp một cái nhìn tổng quan để thấy được sử khác biệt giữa các phân khúc khách hàng, đặc biệt là khách hàng giá trị cao Điều này có thể hữu ích trong việc hỗ trợ ra quyết định và định hướng chiến lược trong tương lai.

Tuy nhiên, ngoài những ưu điểm kể trên, nền tảng được xây dựng trong đồ án này vẫn còn tồn tại một số nhược điểm Thứ nhất, mỗi khi xây dựng lại mô hình phân khúc, hệ thống yêu cầu phải gán tên phân khúc lại một cách thủ công Thứ hai, hệ thống chưa có khả năng sử dụng được hết các dữ liệu thu thập được Và cuối cùng, mặc dù hệ thống có lưu trữ lại những bản ghi lỗi nhưng vẫn chưa tiến hành xử lý được.

Qua quá trình thực hiện đồ án, em đã được tổng hợp lại các kiến thức đã được học và vận dụng các kiến thức này vào việc xây dựng và triển khai một hệ thống gần giống với thực tế Ngoài các kiến thức đã biết, em còn có cơ hội học hỏi thêm nhiều kiến thức về các công nghệ mới hiện nay trong phạm vi của dữ liệu lớn Quá trình làm đồ án này cũng giúp em tăng khả năng tự học, kỹ năng phân tích vấn đề để tìm ra hướng giải quyết phù hợp Những kỳ năng tích góp được này chắc chắn sẽ là nền tảng để em có thể phát triển hơn trong tương lai.

Dựa trên những ưu điểm và hạn chế được trình bày ở trên, em nhận thấy hệ thống có thể có những hướng phát triển trong tương lai như sau:

• Nghiên cứu, xây dựng thêm một giải pháp xử lý dữ liệu lỗi một cách tự động.

• Đưa ra giải pháp cho việc gán tên nhóm khách hàng thủ công, ví dụ như thực hiện việc gán tên nhóm khách hàng ngay trên giao diện trực quan hóa dữ liệu.

• Mặc dù DBT có hỗ trợ một số mô hình học máy nhưng chưa phải là tất cả và vẫn còn những hạn chế nhất định Vì vậy, trong tương lại có thể tích hợp thêm

Ngày đăng: 10/09/2024, 13:58

HÌNH ẢNH LIÊN QUAN

Hình 2.1: Các nguồn dữ liệu của CDP - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 2.1 Các nguồn dữ liệu của CDP (Trang 12)
Hình 2.2: Cách thức hoạt động của CDP - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 2.2 Cách thức hoạt động của CDP (Trang 13)
Hình 3.1: Kiến trúc của Snowplow - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 3.1 Kiến trúc của Snowplow (Trang 16)
Hình 3.2: Minh họa DBT Pipeline - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 3.2 Minh họa DBT Pipeline (Trang 18)
Hình 3.3: Minh họa vị trí của Metabase trong một data pipeline - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 3.3 Minh họa vị trí của Metabase trong một data pipeline (Trang 19)
Hình 3.4: Kiến trúc của cụm GKE - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 3.4 Kiến trúc của cụm GKE (Trang 21)
Bảng 4.1: Thông tin user_context - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Bảng 4.1 Thông tin user_context (Trang 23)
Bảng 4.2: Thông tin product_context - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Bảng 4.2 Thông tin product_context (Trang 23)
Bảng 4.4: Thông tin sự kiện (event) - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Bảng 4.4 Thông tin sự kiện (event) (Trang 24)
Bảng 4.3: Thông tin product_action - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Bảng 4.3 Thông tin product_action (Trang 24)
Hình 4.1: Kiến trúc tổng quan hệ thống - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 4.1 Kiến trúc tổng quan hệ thống (Trang 25)
Hình 4.2: Kiến trúc tổng quan hệ thống - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 4.2 Kiến trúc tổng quan hệ thống (Trang 26)
Hình 4.3: Luồng dữ liệu giữa BigQuery Loader và Bigquery - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 4.3 Luồng dữ liệu giữa BigQuery Loader và Bigquery (Trang 27)
Hình 4.4: Kiến trúc tổng quan hệ thống - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 4.4 Kiến trúc tổng quan hệ thống (Trang 28)
Hình 4.5: Luồng biến đổi dữ liệu trong DBT Cloud - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 4.5 Luồng biến đổi dữ liệu trong DBT Cloud (Trang 28)
Bảng 4.5: Bảng minimum_features_events - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Bảng 4.5 Bảng minimum_features_events (Trang 29)
Bảng 4.7: Bảng RFM - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Bảng 4.7 Bảng RFM (Trang 29)
Bảng 4.6: Bảng user_mapping - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Bảng 4.6 Bảng user_mapping (Trang 29)
Hình 4.7: Bảng thông số của mỗi node trong cụm Kubernetes - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 4.7 Bảng thông số của mỗi node trong cụm Kubernetes (Trang 31)
Hình 4.8: Thực hiện thêm lược đồ vào Iglu Server - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 4.8 Thực hiện thêm lược đồ vào Iglu Server (Trang 39)
Hình 4.10: Tạo biểu đồ trong Metabase - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 4.10 Tạo biểu đồ trong Metabase (Trang 48)
Hình 4.9: Metabase kết nối với BigQuery - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 4.9 Metabase kết nối với BigQuery (Trang 48)
Hình 4.11: Metabase dashboard - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 4.11 Metabase dashboard (Trang 49)
Hình 5.1: Trang thương mại điện tử ngành hàng thời trang - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 5.1 Trang thương mại điện tử ngành hàng thời trang (Trang 50)
Hình 5.2: Một số bản ghi trong dữ dự kiện liệu thu thập - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 5.2 Một số bản ghi trong dữ dự kiện liệu thu thập (Trang 50)
Hình 5.6: Biểu đồ Giao dịch gần đây nhất - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 5.6 Biểu đồ Giao dịch gần đây nhất (Trang 52)
Hình 5.5: Biểu đồ Tỉ lệ bỏ giỏ hàng - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 5.5 Biểu đồ Tỉ lệ bỏ giỏ hàng (Trang 52)
Hình 5.7: Biểu đồ Tần suất giao dịch - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 5.7 Biểu đồ Tần suất giao dịch (Trang 53)
Hình 5.8: Biểu đồ Chi tiêu trên đầu người - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 5.8 Biểu đồ Chi tiêu trên đầu người (Trang 53)
Hình 5.9: Biểu đổ Tỉ lệ chuyển đổi giữa các hành động - ĐATN_ Xây dựng nền tảng dữ liệu khách hàng ứng dụng cho bài toán xác định khách hàng giá trị cao trong ngành hàng thời trang
Hình 5.9 Biểu đổ Tỉ lệ chuyển đổi giữa các hành động (Trang 54)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w