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 một luồng dữ liệu giao dịch thẻ tín dụng được ghi vào Bigtable. Bạn sẽ tìm hiểu cách sử dụng mẫu thay đổi Bigtable cho 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 đã bật luồng thay đổi.
- 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 Google Cloud Console, trên trang bộ chọn dự án, hãy chọn hoặc tạo dự án Google Cloud.
- Đảm bảo rằng bạn đã bật tính năng thanh toán cho dự án Google Cloud của mình.
- Truy cập vào trang bật API được điền sẵn 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
Bạn sẽ phân tích dữ liệu bằng BigQuery ở phần sau của lớp học lập trình này. Hãy làm theo các hướng dẫn sau để tạo tập dữ liệu cho đầu ra của quy trình dữ liệu.
- Trong Google Cloud Console, 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 (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 Tạo tập dữ liệu, hãy làm như sau:
- Nhập
bigtable_bigquery_tutorial
cho Mã tập dữ liệu. - 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 đã bật luồng thay đổi
Bigtable là một dịch vụ cơ sở dữ liệu NoSQL có độ trễ thấp, có thể mở rộng theo chiều ngang. Một trường hợp sử dụng phổ biến của Bigtable là phân phát 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 thẻ tín dụng. Bigtable có thể xử lý các giao dịch ghi có tốc độ cao trên khắp thế giới và thậm chí có thể sử dụng dữ liệu đó để phát hiện gian lận theo thời gian thực.
- Trong bảng điều khiển của Google Cloud, hãy truy cập vào trang Bigtable Instances.
- Nhấp vào mã phiên bản mà bạn đang sử dụng cho hướng dẫn này. Nếu bạn chưa có phiên bản, hãy tạo một phiên bản có tên do bạn chọn ở một khu vực gần bạn. Bạn có thể sử dụng cấu hình mặc định cho mọi trường hợp 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 là
retail-database
. - Thêm một gia đình cột có tên là
transactions
. - Chọn Bật luồng thay đổi.
- Để nguyên chính sách thu gom rác và thời gian lưu giữ ở giá trị mặc định.
- Nhấp vào Tạo.
5. Khởi động một quy trình dữ liệu để thu thập luồng thay đổi
Hiệu suất của Bigtable ở mức tối ưu để đọc điểm và quét dải hàng, nhưng số liệu phân tích trên toàn bảng có thể gây căng thẳng cho khả năng phân phát và tài nguyên CPU. BigQuery rất phù hợp cho số liệu phân tích trên toàn bảng, vì vậy, bạn sẽ sử dụng giải pháp 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 không cần phải lập trình thêm vì sẽ 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 đưa 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 Bảng của Bigtable, hãy tìm bảng
retail-database
của bạn. - Trong cột Luồng thay đổi, hãy nhấp vào Kết nối.
- Trong hộp thoại Connect with Dataflow (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 tham số không bắt buộc nào.
- Đặt mã hồ sơ của ứng dụng Cloud Bigtable thành
default
. - Đặt tập dữ liệu BigQuery thành
bigtable_bigquery_tutorial
.
- Nhấp vào Run Job (Chạy công việc).
- Chờ đến khi trạng thái công việc là Starting (Bắt đầu) hoặc Running (Đang chạy) thì 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 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 để 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 bị 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 thẻ tín dụng vào bảng Bigtable. Tập dữ liệu mẫu này bao gồm các 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 ứng dụng xử lý thẻ tín dụng thực tế, dữ liệu này sẽ được truyền trực tuyến vào cơ sở dữ liệu của bạn theo thời gian thực mỗi khi giao dịch xảy 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 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 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ẽ cho biết
Done importing 10000 rows.
7. Xem nhật ký thay đổi trong BigQuery
- Trong Google Cloud Console, 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 không thấy bảng. - Để 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
Bây giờ, bạn có thể chạy một vài truy vấn trên tập dữ liệu này để nhận 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.
Tra cứu 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 đã viết đã được chuyển thành một hàng riêng lẻ trong BigQuery.
Tìm số lượt mua hàng trong mỗi danh mục
Sử dụng truy vấn sau để đếm số lượt mua hàng trên mỗi 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ạo lại từng giao dịch thành một hàng trong bảng BigQuery, bạn sẽ tổng hợp dữ liệu và lưu kết quả đó vào một bảng mới. Đây là đị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 vào nút xoá để xoá các biểu đồ đó.
- Chọn Thuộc tính ở bên phải trang để bạn 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 (Phương diện) thành
transaction_date
.
- Đặt Metric (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 đồ và tạo bảng.
- Đặt Dimension (Phương diện) thành
merchant
. - Đặt Chỉ số thành
sales_dollars
Tỷ lệ phần trăm giao dịch trên mỗi danh mục
- Nhấp vào Thêm biểu đồ và tạo biểu đồ hình tròn.
- Đặt Dimension (Phương diện) thành
category
. - Đặt Chỉ số thành
sales_dollars
Xem các thay đổi theo thời gian thực
Hãy 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 một số người bán cụ thể trong bảng hoặc một số danh mục cụ thể trong bảng. Thao tác này sẽ khiến tất cả biểu đồ lọc theo các giá trị cụ thể đó để cung cấp cho bạn 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 sẽ cập nhật theo thời gian thực như thế nào.
- Quay lại Cloud Shell.
- Tải tập dữ liệu thứ hai xuống rồi ghi.
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 rồi làm mới dữ liệu bằng lệnh
Ctrl+Shift+E
hoặc nhấp vào Làm mới dữ liệu trong trình đơn chế độ xem. Lúc này, bạn sẽ thấy dữ liệu cho tháng 1 năm 2024 trong biểu đồ.
Có nhiều biến thể của biểu đồ và chỉ số mà bạn có thể tạo ngoài phạm vi này. Vui lòng đọc thêm trong tài liệu về Looker.
9. Dọn dẹp
Để tránh làm phát sinh chi phí cho các tài nguyên được sử dụng trong hướng dẫn này trong tài khoản Google Cloud của bạn, hãy xoá dự án chứa các tài nguyên đó, hoặc giữ lại dự án và xoá từng tài nguyên riêng lẻ.
Dừng quy trình của luồng thay đổi
- Trong Google Cloud Console, hãy chuyển đến trang Công việc Dataflow.
- Chọn công việc truyền trực tuyến trong danh sách công việc.
- Trong quá trình di chuyển, hãy nhấp vào Dừng.
- Trong hộp thoại Stop job (Dừng công việc), hãy chọn Cancel (Huỷ), sau đó nhấp vào Stop job (Dừng công việc).
Xoá tài nguyên Bigtable
Nếu đã tạo một thực thể Bigtable cho hướng dẫn này, bạn có thể xoá thực thể đó hoặc dọn dẹp bảng mà bạn đã tạo.
- Trong bảng điều khiển của Google Cloud, hãy truy cập vào trang Bigtable Instances.
- Nhấp vào mã nhận dạng của thực thể mà bạn đang sử 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á thực thể nếu bạn đã tạo một thực thể mới cho hướng dẫn này
Xoá tập dữ liệu BigQuery
- Trong Google Cloud Console, hãy chuyển đến trang BigQuery.
- Trong bảng điều khiển Explorer (Trình khám phá), hãy tìm tập dữ liệu
bigtable_bigquery_tutorial
rồ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.