1. Tổng quan
Lớp học lập trình này sẽ hướng dẫn bạn phân tích luồng dữ liệu giao dịch bằng thẻ tín dụng đang được ghi vào Bigtable. Bạn sẽ tìm hiểu cách sử dụng mẫu luồng thay đổi Bigtable sang BigQuery để xuất dữ liệu theo thời gian thực. Sau đó, bạn sẽ thấy các kỹ thuật để truy vấn nhật ký luồng thay đổi và cách định dạng lại dữ liệu để tạo trang tổng quan bằng Looker.
Lớp học lập trình này dành cho những người dùng kỹ thuật đã quen thuộc với Bigtable, sử dụng các công cụ dòng lệnh và dịch vụ truyền trực tuyến sự kiện.

Lớp học lập trình này hướng dẫn bạn cách thực hiện những việc sau:
- Tạo một bảng Bigtable có luồng thay đổi được bật.
- Tạo một tập dữ liệu BigQuery.
- Triển khai mẫu Dataflow
Bigtable change streams to BigQuery. - Truy vấn luồng sự kiện trong BigQuery.
- Trực quan hoá luồng sự kiện bằng Looker.
Sơ đồ này cho thấy cấu trúc của hệ thống mà bạn sẽ triển khai.

2. Thiết lập dự án
- Trong bảng điều khiển Cloud, trên trang chọn dự án, hãy chọn hoặc tạo một dự án trên Google Cloud.

- Đảm bảo rằng bạn đã bật tính năng thanh toán cho dự án trên Google Cloud.
- Truy cập vào trang bật API được điền sẵn thông tin này để bật các API cần thiết cho Dataflow, Bigtable, BigQuery, Looker và Cloud Storage.
3. Tạo tập dữ liệu BigQuery
Sau này, bạn sẽ phân tích dữ liệu bằng BigQuery trong lớp học lập trình. Làm theo các hướng dẫn này để tạo tập dữ liệu cho đầu ra của quy trình dữ liệu.
- Trong bảng điều khiển Cloud, hãy chuyển đến trang BigQuery.
- Trong ngăn Explorer (Trình khám phá), hãy tìm tên dự án của bạn rồi nhấp vào trình đơn mục bổ sung (biểu tượng ba dấu chấm dọc bên cạnh mã dự án).
- Nhấp vào Tạo tập dữ liệu.

- Trong bảng điều khiển Tạo tập dữ liệu, hãy làm như sau:
- Đối với Mã tập dữ liệu, hãy nhập
bigtable_bigquery_tutorial. - Giữ nguyên các chế độ cài đặt mặc định còn lại.
- Nhấp vào Tạo tập dữ liệu.
4. Tạo bảng Bigtable có luồng thay đổi được bật
Bigtable là một dịch vụ cơ sở dữ liệu NoSQL có độ trễ thấp và khả năng mở rộng theo chiều ngang. Một trường hợp sử dụng phổ biến của dịch vụ này là cung cấp dữ liệu tài chính. Tại đây, bạn sẽ tạo một bảng có thể lưu trữ các giao dịch bằng thẻ tín dụng. Bigtable có thể xử lý các giao dịch ghi có thông lượng cao trên toàn thế giới và thậm chí có thể sử dụng dữ liệu đó cho tính năng phát hiện gian lận theo thời gian thực.
- Trong bảng điều khiển Cloud, hãy chuyển đến trang Bigtable Instances (Các phiên bản Bigtable).
- Nhấp vào mã nhận dạng của phiên bản mà bạn đang dùng cho hướng dẫn này. Nếu bạn không có phiên bản nào, hãy tạo một phiên bản có tên mà bạn chọn ở khu vực gần bạn. Bạn có thể sử dụng cấu hình mặc định cho mọi thứ khác.

- Trong ngăn điều hướng bên trái, hãy nhấp vào Bảng.
- Nhấp vào Tạo bảng.

- Đặt tên cho bảng
retail-database. - Thêm một họ cột có tên là
transactions. - Chọn Bật luồng thay đổi.
- Để nguyên giá trị mặc định của chính sách thu gom rác và khoảng thời gian lưu giữ.
- Nhấp vào Tạo.

5. Khởi chạy một quy trình dữ liệu để ghi lại luồng thay đổi
Hiệu suất của Bigtable là tối ưu cho các hoạt động đọc theo điểm và quét phạm vi hàng, nhưng hoạt động phân tích trên toàn bảng có thể gây áp lực lên dung lượng phân phát và tài nguyên CPU. BigQuery rất phù hợp cho hoạt động phân tích trên toàn bảng, vì vậy, giải pháp mà bạn sẽ sử dụng ở đây là ghi kép. Điều này có nghĩa là bạn sẽ ghi dữ liệu vào Bigtable và BigQuery, đây là một kỹ thuật phổ biến. Bạn sẽ không cần viết thêm mã vì bạn sẽ dùng mẫu Dataflow Bigtable change streams to BigQuery: khi dữ liệu được ghi vào Bigtable, quy trình sẽ ghi một bản ghi thay đổi trong BigQuery. Sau khi dữ liệu được chuyển vào BigQuery, bạn có thể thực hiện các truy vấn được tối ưu hoá trên toàn bộ tập dữ liệu mà không ảnh hưởng đến hiệu suất của dữ liệu phân phát trong Bigtable.

- Trên trang Tables (Bảng) của Bigtable, hãy tìm bảng
retail-database. - Trong cột Luồng thay đổi, hãy nhấp vào Kết nối.
- Trong hộp thoại Kết nối với Dataflow, hãy chọn BigQuery.
- Nhấp vào Tạo công việc Dataflow.
- Trong các trường thông số được cung cấp, hãy nhập giá trị thông số. Bạn không cần cung cấp bất kỳ tham số không bắt buộc nào.
- Đặt mã hồ sơ ứng dụng Cloud Bigtable thành
default. - Đặt tập dữ liệu BigQuery thành
bigtable_bigquery_tutorial.
- Nhấp vào Chạy lệnh.
- Chờ đến khi trạng thái của lệnh là Bắt đầu hoặc Đang chạy rồi mới tiếp tục. Quá trình này có thể mất khoảng 5 phút sau khi công việc được đưa vào hàng đợi. Trang này sẽ tự động cập nhật. Mẫu này tạo một công việc truyền trực tuyến, vì vậy, mẫu này có thể liên tục xử lý dữ liệu mới được ghi vào Bigtable cho đến khi công việc dừng theo cách thủ công.

6. Ghi một số dữ liệu vào Bigtable
Bây giờ, bạn sẽ ghi một năm giao dịch bằng thẻ tín dụng vào bảng Bigtable. Tập dữ liệu mẫu này bao gồm những thông tin như số thẻ tín dụng, tên và mã nhận dạng người bán, cũng như số tiền. Trong một ứng dụng xử lý thẻ tín dụng thực tế, dữ liệu này sẽ được truyền trực tiếp vào cơ sở dữ liệu của bạn theo thời gian thực khi mỗi giao dịch diễn ra.
- Mở Cloud Shell bằng cách nhấp vào nút ở góc trên cùng bên phải của bảng điều khiển đám mây.

- Nếu được nhắc, hãy chấp nhận lời nhắc để uỷ quyền cho Cloud Shell.
- Tải tập dữ liệu xuống.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
- Đặt các biến môi trường trong dòng lệnh
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
- Sử dụng CLI
cbtđể ghi một số giao dịch bằng thẻ tín dụng vào bảngretail-database.
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2023.csv column-family=transactions
Kết quả sẽ là
Done importing 10000 rows.
7. Xem nhật ký thay đổi trong BigQuery
- Trong bảng điều khiển Cloud, hãy chuyển đến trang BigQuery.
- Trong ngăn Explorer (Trình khám phá), hãy mở rộng dự án và tập dữ liệu
bigtable_bigquery_tutorial. - Nhấp vào bảng
retail-database_changelog. Bạn có thể cần làm mới tập dữ liệu nếu bảng không xuất hiện. - Để xem nhật ký thay đổi, hãy nhấp vào Xem trước.

Thử một số cụm từ tìm kiếm
Giờ đây, bạn có thể chạy một số truy vấn trên tập dữ liệu này để nắm được một số thông tin chi tiết. Các truy vấn SQL được cung cấp tại đây, nhưng tài liệu Truy vấn nhật ký thay đổi Bigtable trong BigQuery có thêm thông tin về cách viết truy vấn cho dữ liệu nhật ký thay đổi.
Tìm một giao dịch
Sử dụng truy vấn sau để tra cứu dữ liệu cho một giao dịch cụ thể.
SELECT *
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE row_key="3034-442694-3052#2023-03-03T14:50:46.824Z"
Bạn sẽ thấy rằng mỗi cột được ghi đã được chuyển thành một hàng riêng lẻ trong BigQuery.
Tìm số lượng giao dịch mua trong mỗi danh mục
Sử dụng truy vấn sau để đếm số lượng giao dịch mua theo từng danh mục.
SELECT value as category, count(*) as `number of sales`
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE column="category"
GROUP BY category
Định dạng lại dữ liệu
Để tái cấu trúc từng giao dịch thành một hàng duy nhất trong bảng BigQuery, bạn sẽ xoay dữ liệu và lưu kết quả đó vào một bảng mới. Đây là một định dạng dễ quản lý hơn để truy vấn.
CREATE VIEW bigtable_bigquery_tutorial.retail_transactions_view AS (
SELECT *, parse_numeric(amount) as sales_dollars FROM (
SELECT row_key, timestamp, column, value
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
)
PIVOT (
MAX(value)
FOR column in ("merchant", "amount", "category", "transaction_date")
)
)
Tạo trang tổng quan Looker
- Nhấp vào Chuyển đến chế độ xem để chuyển đến trang chi tiết của chế độ xem mới.
- Nhấp vào Xuất.
- Chọn Khám phá bằng Looker Studio

8. Thêm biểu đồ vào trang tổng quan
Giờ đây, bạn có thể lập biểu đồ thông tin để dễ dàng nắm bắt và chia sẻ dưới dạng báo cáo. Bạn sẽ thêm 3 biểu đồ vào trang tổng quan:
- Số tiền giao dịch theo thời gian
- Tổng số giao dịch của mỗi người bán
- Tỷ lệ phần trăm giao dịch theo danh mục

Thiết lập trang
- Nhấp vào từng biểu đồ hiện có rồi nhấn nút xoá để xoá các biểu đồ đó.
- Chọn Cơ sở lưu trú ở bên phải trang để có thể sửa đổi dữ liệu biểu đồ.
Thêm biểu đồ
Số tiền giao dịch theo thời gian
- Nhấp vào Thêm biểu đồ rồi tạo biểu đồ chuỗi thời gian.
- Đặt Dimension thành
transaction_date.
- Đặt Chỉ số thành
sales_dollars.

Tổng số giao dịch của mỗi người bán
- Nhấp vào Thêm biểu đồ rồi tạo một bảng.
- Đặt Dimension thành
merchant. - Đặt Chỉ số thành
sales_dollars
Tỷ lệ phần trăm giao dịch theo danh mục
- Nhấp vào Thêm biểu đồ rồi tạo biểu đồ hình tròn.
- Đặt Dimension thành
category. - Đặt Chỉ số thành
sales_dollars
Xem các thay đổi theo thời gian thực
Dành chút thời gian để khám phá các giá trị trong biểu đồ. Bạn có thể nhấp vào những người bán cụ thể trong bảng hoặc những danh mục cụ thể trong bảng. Thao tác này sẽ khiến tất cả biểu đồ lọc theo những giá trị cụ thể đó, giúp bạn có thêm thông tin chi tiết. Tiếp theo, bạn có thể ghi thêm dữ liệu và xem biểu đồ này cập nhật theo thời gian thực.
- Quay lại Cloud Shell.
- Tải xuống và ghi tập dữ liệu thứ hai.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2024-jan.csv .
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2024-jan.csv column-family=transactions
- Quay lại trang tổng quan Looker và làm mới dữ liệu bằng lệnh
Ctrl+Shift+Ehoặc nhấp vào Làm mới dữ liệu trong trình đơn view (khung hiển thị). Lúc này, bạn sẽ thấy dữ liệu cho tháng 1 năm 2024 trong biểu đồ.
Ngoài ra, bạn có thể tạo nhiều biến thể của biểu đồ và chỉ số. Đọc thêm trong tài liệu của Looker.
9. Dọn dẹp
Để tránh bị tính phí vào tài khoản Google Cloud của bạn cho các tài nguyên được dùng trong hướng dẫn này, hãy xoá dự án chứa các tài nguyên đó hoặc giữ lại dự án rồi xoá từng tài nguyên.
Dừng quy trình truyền dữ liệu thay đổi
- Trong bảng điều khiển Google Cloud, hãy chuyển đến trang Dataflow Jobs (Công việc Dataflow).
- Chọn công việc truyền phát trực tiếp trong danh sách công việc.
- Trong chế độ chỉ đường, hãy nhấp vào Dừng.
- Trong hộp thoại Stop job (Dừng lệnh), hãy chọn Cancel (Huỷ) rồi nhấp vào Stop job (Dừng lệnh).
Xoá các tài nguyên Bigtable
Nếu đã tạo một phiên bản Bigtable cho hướng dẫn này, bạn có thể xoá phiên bản đó hoặc dọn dẹp bảng mà bạn đã tạo.
- Trong bảng điều khiển Cloud, hãy chuyển đến trang Bigtable Instances (Các phiên bản Bigtable).
- Nhấp vào mã nhận dạng của phiên bản mà bạn đang dùng cho hướng dẫn này.
- Trong ngăn điều hướng bên trái, hãy nhấp vào Bảng.
- Tìm bảng
retail-database. - Nhấp vào Chỉnh sửa.
- Xoá Bật luồng thay đổi.
- Nhấp vào Lưu.
- Mở trình đơn mục bổ sung cho bảng.
- Nhấp vào Xoá rồi nhập tên bảng để xác nhận.
- Không bắt buộc: Xoá phiên bản nếu bạn đã tạo một phiên bản mới cho hướng dẫn này
Xoá tập dữ liệu BigQuery
- Trong bảng điều khiển Cloud, hãy chuyển đến trang BigQuery.
- Trong bảng Trình khám phá, hãy tìm tập dữ liệu
bigtable_bigquery_tutorialrồi nhấp vào tập dữ liệu đó. - Nhấp vào Xoá, nhập "xoá", rồi nhấp vào Xoá để xác nhận.