Chuẩn bị dữ liệu bằng các tác nhân AI trong lớp học lập trình BigQuery

1. Giới thiệu

Hãy tưởng tượng bạn có thể chuẩn bị dữ liệu để phân tích nhanh chóng và hiệu quả hơn mà không cần phải là chuyên gia về lập trình. Với BigQuery Data Preparation, điều đó đã trở thành hiện thực. Tính năng mạnh mẽ này giúp đơn giản hoá quy trình nhập dữ liệu, chuyển đổi và làm sạch dữ liệu, giúp mọi chuyên gia dữ liệu trong tổ chức của bạn có thể chuẩn bị dữ liệu.

Bạn đã sẵn sàng khám phá những bí mật ẩn chứa trong dữ liệu sản phẩm của mình chưa?

Điều kiện tiên quyết

  • Có kiến thức cơ bản về Google Cloud Console
  • Có kiến thức cơ bản về SQL

Kiến thức bạn sẽ học được

  • Cách chuẩn bị dữ liệu trong BigQuery có thể làm sạch và chuyển đổi dữ liệu thô thành thông tin chi tiết hữu ích về hoạt động kinh doanh, bằng cách sử dụng một ví dụ thực tế trong ngành Thời trang và Làm đẹp.
  • Cách chạy và lên lịch chuẩn bị dữ liệu cho dữ liệu đã được làm sạch

Bạn cần có

  • Tài khoản Google Cloud và dự án trên Google Cloud
  • Một trình duyệt web như Chrome

2. Thiết lập cơ bản và yêu cầu

Thiết lập môi trường theo tốc độ của riêng bạn

  1. Đăng nhập vào Google Cloud Console rồi tạo một dự án mới hoặc sử dụng lại một dự án hiện có. Nếu chưa có tài khoản Gmail hoặc Google Workspace, bạn phải tạo một tài khoản.

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Tên dự án là tên hiển thị của những người tham gia dự án này. Đây là một chuỗi ký tự mà các API của Google không sử dụng. Bạn luôn có thể cập nhật thông tin này.
  • Mã dự án là mã duy nhất trên tất cả các dự án trên Google Cloud và không thể thay đổi (bạn không thể thay đổi mã này sau khi đã đặt). Cloud Console sẽ tự động tạo một chuỗi duy nhất; thường thì bạn không cần quan tâm đến chuỗi này. Trong hầu hết các lớp học lập trình, bạn sẽ cần tham chiếu đến Mã dự án (thường được xác định là PROJECT_ID). Nếu không thích mã nhận dạng được tạo, bạn có thể tạo một mã nhận dạng ngẫu nhiên khác. Hoặc bạn có thể thử tên người dùng của riêng mình để xem tên đó có được chấp nhận hay không. Bạn không thể thay đổi tên này sau bước này và tên này sẽ tồn tại trong suốt thời gian của dự án.
  • Để bạn nắm được thông tin, có một giá trị thứ ba là Số dự án mà một số API sử dụng. Tìm hiểu thêm về cả 3 giá trị này trong tài liệu.
  1. Tiếp theo, bạn cần bật tính năng thanh toán trong Cloud Console để sử dụng các tài nguyên/API trên Cloud. Việc thực hiện lớp học lập trình này sẽ không tốn nhiều chi phí, nếu có. Để tắt các tài nguyên nhằm tránh bị tính phí ngoài phạm vi hướng dẫn này, bạn có thể xoá các tài nguyên đã tạo hoặc xoá dự án. Người dùng mới của Google Cloud đủ điều kiện tham gia chương trình Dùng thử miễn phí trị giá 300 USD.

3. Trước khi bắt đầu

Bật API

Để sử dụng Gemini trong BigQuery, bạn phải bật Gemini cho Google Cloud API. Quản trị viên dịch vụ hoặc chủ sở hữu dự án có serviceusage.services.enablequyền IAM thường thực hiện bước này.

  1. Để bật Gemini cho Google Cloud API, hãy chuyển đến trang Gemini cho Google Cloud trong Google Cloud Marketplace. Chuyển đến Gemini cho Google Cloud
  2. Trong bộ chọn dự án, hãy chọn một dự án.
  3. Nhấp vào Bật. Trang này sẽ cập nhật và cho biết trạng thái Đã bật. Giờ đây, Gemini trong BigQuery đã có mặt trong dự án Google Cloud mà bạn chọn cho tất cả người dùng có các quyền IAM cần thiết.

Thiết lập vai trò và quyền để phát triển các bước chuẩn bị dữ liệu

  1. Trong phần IAM và Quản trị viên, hãy chọn IAM

4477412d79f29e0b.png

  1. Chọn người dùng của bạn rồi nhấp vào biểu tượng bút chì để "Chỉnh sửa người dùng chính"

5eb558e04ad12362.png

Để sử dụng tính năng Chuẩn bị dữ liệu BigQuery, bạn cần có các vai trò và quyền sau:

4. Tìm và đăng ký trang thông tin "bq data preparation demo" trong BigQuery Analytics Hub

Chúng ta sẽ sử dụng tập dữ liệu bq data preparation demo cho hướng dẫn này. Đây là một tập dữ liệu được liên kết trong BigQuery Analytics Hub mà chúng ta sẽ đọc dữ liệu từ đó.

Quá trình chuẩn bị dữ liệu không bao giờ ghi lại vào nguồn và chúng tôi sẽ yêu cầu bạn xác định một bảng đích để ghi vào. Bảng mà chúng ta sẽ làm việc trong bài tập này chỉ có 1.000 hàng để giảm thiểu chi phí,nhưng quá trình chuẩn bị dữ liệu sẽ chạy trên BigQuery và sẽ mở rộng quy mô cùng với dữ liệu.

Hãy làm theo các bước sau để tìm và đăng ký nhận thông tin cập nhật về tập dữ liệu được liên kết:

  1. Truy cập vào Analytics Hub: Trong Google Cloud Console, hãy chuyển đến BigQuery.
  2. Trong trình đơn điều hướng BigQuery, trong mục "Quản trị", hãy chọn "Trung tâm phân tích".

6ddfac4dd863ca7b.png

  1. Tìm trang thông tin: Trong giao diện người dùng của Analytics Hub, hãy nhấp vào Tìm trang thông tin.
  2. Nhập bq data preparation demo vào thanh tìm kiếm rồi nhấn Enter.

7e0cb82b80174cdc.png

  1. Đăng ký nhận thông tin về Trang thông tin: Chọn trang thông tin bq data preparation demo trong kết quả tìm kiếm.
  2. Trên trang thông tin chi tiết, hãy nhấp vào nút Đăng ký.
  3. Xem xét mọi hộp thoại xác nhận và cập nhật dự án/tập dữ liệu nếu cần. Các giá trị mặc định phải chính xác.

2ef0ac1e3557f2f9.png

  1. Truy cập vào Tập dữ liệu trong BigQuery: Sau khi bạn đăng ký thành công, các tập dữ liệu trong trang thông tin sẽ được liên kết với dự án BigQuery của bạn.

Quay lại BigQuery Studio.

5. Khám phá dữ liệu và khởi chạy quy trình chuẩn bị dữ liệu

  1. Tìm Tập dữ liệu và Bảng: Trong bảng điều khiển Explorer, hãy chọn dự án của bạn rồi tìm tập dữ liệu có trong danh sách bq data preparation demo. Chọn bảng stg_product.
  2. Mở trong phần Chuẩn bị dữ liệu: Nhấp vào biểu tượng ba dấu chấm dọc bên cạnh tên bảng rồi chọn Open in Data Preparation.

Thao tác này sẽ mở bảng trong giao diện Chuẩn bị dữ liệu, sẵn sàng để bạn bắt đầu chuyển đổi dữ liệu.

76ace3d4b5cfc2d0.png

Như bạn có thể thấy trong bản xem trước dữ liệu bên dưới, chúng tôi sẽ giải quyết một số thách thức về dữ liệu, bao gồm:

  • Cột giá chứa cả số tiền và đơn vị tiền tệ, khiến việc phân tích trở nên khó khăn.
  • Cột sản phẩm kết hợp tên và danh mục sản phẩm (phân tách bằng biểu tượng dấu gạch dọc |).

f4d93aa59a56447a.png

Ngay lập tức, Gemini sẽ phân tích dữ liệu của bạn và đề xuất một số phép biến đổi. Trong ví dụ này, chúng ta thấy một số đề xuất. Trong các bước tiếp theo, chúng ta sẽ áp dụng những thành phần cần thiết.

fd4d14e4fa3c31c1.png

6. Xử lý cột giá

Hãy giải quyết cột Giá. Như chúng ta đã thấy, nó chứa cả đơn vị tiền tệ và số tiền. Mục tiêu của chúng ta là tách các giá trị này thành hai cột riêng biệt:Đơn vị tiền tệ và Số tiền.

Gemini đã xác định được một số đề xuất cho cột Giá.

  1. Tìm một đề xuất có nội dung tương tự như:

Nội dung mô tả: "Biểu thức này xoá "USD " ở đầu khỏi trường được chỉ định"

REGEXP_REPLACE(Price,` `r'^USD\s',` `r'')
  1. Chọn Xem trước

c9327cfbd32247d6.png

  1. Chọn Áp dụng

Tiếp theo, đối với cột Giá, hãy chuyển đổi loại dữ liệu từ CHUỖI thành SỐ.

  1. Tìm một đề xuất có nội dung tương tự như:

Nội dung mô tả: "Chuyển đổi cột Giá từ loại chuỗi thành float64"

SAFE_CAST(Price AS float64)
  1. Chọn Áp dụng.

Giờ đây, bạn sẽ thấy 3 bước đã áp dụng trong danh sách bước.

d3359af47dce0c15.png

7. Xử lý cột sản phẩm

Cột sản phẩm chứa cả tên và danh mục sản phẩm, được phân tách bằng dấu gạch dọc (|).

Mặc dù có thể sử dụng lại ngôn ngữ tự nhiên, nhưng hãy khám phá một trong những tính năng mạnh mẽ khác của Gemini.

Dọn dẹp tên sản phẩm

  1. Chọn phần danh mục của một mục sản phẩm, bao gồm cả ký tự | rồi xoá phần đó.

5171d598a8cb3a75.png

Gemini sẽ nhận ra mẫu hình này một cách thông minh và đề xuất một phép biến đổi để áp dụng cho toàn bộ cột.

  1. Chọn "Chỉnh sửa".

b36cac918b4f30e9.png

Đề xuất của Gemini rất chính xác: Gemini xoá mọi nội dung sau ký tự "|", giúp tách biệt tên sản phẩm một cách hiệu quả.

Nhưng lần này, chúng ta không muốn ghi đè dữ liệu ban đầu.

  1. Trong trình đơn thả xuống của cột mục tiêu, hãy chọn "Tạo cột mới".
  2. Đặt tên là ProductName.

bda19e0e5e536ccd.png

  1. Xem trước các thay đổi để đảm bảo mọi thứ đều ổn.
  2. Áp dụng phép biến đổi.

Trích xuất danh mục sản phẩm

Bằng ngôn ngữ tự nhiên, chúng ta sẽ hướng dẫn Gemini trích xuất từ sau dấu gạch dọc (|) trong cột Sản phẩm. Giá trị được trích xuất này sẽ được ghi đè vào cột hiện có có tên là Sản phẩm.

  1. Nhấp vào biểu tượng Add Step để thêm một bước chuyển đổi mới.

77944047e698494c.png

  1. Chọn Transformation trong trình đơn thả xuống
  2. Trong trường câu lệnh bằng ngôn ngữ tự nhiên, hãy nhập "trích xuất từ sau dấu gạch dọc (|) trong cột Sản phẩm" rồi nhấn phím return để tạo SQL.

82efc2447a3210bd.png

  1. Giữ nguyên Cột mục tiêu là "Sản phẩm".
  2. Nhấp vào Áp dụng.

Phép biến đổi sẽ cho bạn kết quả như sau.

d741c66d9e0e8e00.png

8. Kết hợp để làm phong phú dữ liệu

Thông thường, bạn sẽ muốn làm phong phú dữ liệu của mình bằng thông tin từ các nguồn khác. Trong ví dụ này, chúng ta sẽ kết hợp dữ liệu sản phẩm với các thuộc tính mở rộng của sản phẩm, stg_extended_product, từ một bảng của bên thứ ba. Bảng này bao gồm các thông tin như thương hiệu và ngày ra mắt.

  1. Nhấp vào biểu tượng Add Step
  2. Chọn Join
  3. Duyệt xem bảng stg_extended_product.

dca14451c3fbc7f0.png

Gemini trong BigQuery đã tự động chọn khoá kết hợp productid cho chúng ta và đủ điều kiện cho các bên trái và phải vì tên khoá giống nhau.

Lưu ý: Đảm bảo rằng trường nội dung mô tả có nội dung "Kết hợp theo productid". Nếu có thêm khoá kết hợp, hãy ghi đè trường nội dung mô tả thành "Kết hợp theo productid" rồi chọn nút tạo trong trường nội dung mô tả để tạo lại biểu thức kết hợp với điều kiện sau L.

productid

= R.

productid. 4d6dbfea28772f34.png

  1. Bạn cũng có thể chọn Xem trước để xem trước kết quả.
  2. Nhấp vào Apply.

Dọn dẹp các thuộc tính mở rộng

Mặc dù quá trình kết hợp đã thành công, nhưng dữ liệu thuộc tính mở rộng cần được làm sạch. Cột LaunchDate có định dạng ngày không nhất quán và cột Brand chứa một số giá trị bị thiếu.

Chúng ta sẽ bắt đầu bằng cách giải quyết cột LaunchDate.

f9b570d7c2d3a98d.png

Trước khi tạo bất kỳ phép biến đổi nào, hãy kiểm tra các đề xuất của Gemini.

  1. Nhấp vào tên cột LaunchDate. Bạn sẽ thấy một số đề xuất được tạo tương tự như các đề xuất trong hình bên dưới.

62b6e6027a46ba75.png

  1. Nếu bạn thấy một đề xuất có SQL sau đây, hãy Áp dụng đề xuất đó và bỏ qua các bước tiếp theo.
COALESCE(SAFE.PARSE_DATE('%Y-%m-%d',
LaunchDate),SAFE.PARSE_DATE('%Y/%m/%d', LaunchDate))
  1. Nếu bạn không thấy đề xuất nào khớp với SQL ở trên, hãy nhấp vào Add Step.
  2. Chọn Transformation.
  3. Trong trường SQL, hãy nhập nội dung sau:
COALESCE(SAFE.PARSE_DATE('%Y-%m-%d',
LaunchDate),SAFE.PARSE_DATE('%Y/%m/%d', LaunchDate))
  1. Đặt Target Columns thành LaunchDate.
  2. Nhấp vào Apply.

Cột LaunchDate hiện có định dạng ngày nhất quán.

ccf34aa05754a834.png

9. Thêm bảng đích đến

Tập dữ liệu của chúng ta hiện đã được làm sạch và sẵn sàng để tải vào một bảng phương diện trong kho dữ liệu.

  1. Nhấp vào ADD STEP.
  2. Chọn Destination.
  3. Điền các thông số bắt buộc: Tập dữ liệu: bq_data_preparation_demo Bảng: DimProduct
  4. Nhấp vào Save.

79fdc3666a3a21b9.png

Giờ đây, chúng ta đã làm việc với các thẻ "Data" (Dữ liệu) và "Schema" (Lược đồ). Ngoài ra, BigQuery Data Preparation còn cung cấp chế độ xem "Biểu đồ" để hiển thị trực quan trình tự các bước chuyển đổi trong quy trình của bạn.

95e64d8152228f7b.png

10. Phần thưởng A: Xử lý cột Nhà sản xuất và tạo Bảng lỗi

Chúng tôi cũng xác định được các giá trị trống trong cột Manufacturer. Đối với những bản ghi này, chúng ta muốn triển khai quy trình kiểm tra chất lượng dữ liệu và di chuyển chúng sang bảng lỗi để xem xét thêm.

Tạo bảng lỗi

  1. Nhấp vào nút More bên cạnh tiêu đề stg_product data preparation.
  2. Trong phần Setting, hãy chọn Error Table.
  3. Đánh dấu vào hộp Enable error table, định cấu hình các chế độ cài đặt như sau:
  • Tập dữ liệu: Chọn bq_data_preparation_demo
  • Bảng: Nhập err_dataprep
  • Trong mục Define duration for keeping errors, hãy chọn 30 days (default)
  1. Nhấp vào Save.

adb5722f05c1b205.png

Thiết lập quy trình xác thực trên cột Nhà sản xuất

  1. Chọn cột Nhà sản xuất.
  2. Gemini có thể đã xác định được một phép biến đổi phù hợp. Tìm đề xuất chỉ giữ lại những hàng có trường Nhà sản xuất không trống. Nội dung này sẽ có SQL tương tự như sau:
Manufacturer IS NOT NULL

2.Nhấp vào nút "Chỉnh sửa" trên đề xuất này để xem xét.

4749b551a03d8193.png

  1. Chọn mục "Hàng không hợp lệ sẽ chuyển đến bảng lỗi" nếu bạn chưa chọn
  2. Nhấp vào Apply.

Bất cứ lúc nào, bạn cũng có thể xem xét, sửa đổi hoặc xoá các phép biến đổi mà bạn đã áp dụng bằng cách nhấp vào nút "Các bước đã áp dụng".

15df6caacbdd6a69.png

Dọn dẹp cột ProductID_1 dư thừa

Giờ đây, bạn có thể xoá cột ProductID_1 (trùng lặp ProductID trong bảng kết hợp).

  1. Chuyển đến thẻ Schema
  2. Nhấp vào biểu tượng 3 dấu chấm bên cạnh cột ProductID_1.
  3. Nhấp vào biểu tượng Drop.

Bây giờ, chúng ta đã sẵn sàng chạy tác vụ chuẩn bị dữ liệu và xác thực toàn bộ quy trình. Sau khi hài lòng với kết quả, chúng ta có thể lên lịch để chạy tự động.

  1. Trước khi chuyển sang chế độ xem chuẩn bị dữ liệu, hãy lưu các bước chuẩn bị của bạn. Bên cạnh tiêu đề stg_product data preparation, bạn sẽ thấy nút Save. Nhấp vào nút này để lưu.

11. Dọn dẹp môi trường

  • Xoá stg_product data preparation
  • Xoá tập dữ liệu bq data preparation demo

12. Xin chúc mừng

Chúc mừng bạn đã hoàn thành lớp học lập trình này.

Nội dung đã đề cập

  • Thiết lập quy trình chuẩn bị dữ liệu
  • Mở bảng và điều hướng quá trình chuẩn bị dữ liệu
  • Phân tách các cột có dữ liệu mô tả số và đơn vị
  • Chuẩn hoá định dạng ngày
  • Chạy quy trình chuẩn bị dữ liệu