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
- Đă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.



- 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.
- 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.
- Để 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
- Trong bộ chọn dự án, hãy chọn một dự án.
- 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
- Trong phần IAM và Quản trị viên, hãy chọn IAM

- 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"

Để 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:
- Người chỉnh sửa dữ liệu BigQuery (roles/bigquery.dataEditor)
- Người dùng dịch vụ (roles/serviceusage.serviceUsageConsumer)
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:
- Truy cập vào Analytics Hub: Trong Google Cloud Console, hãy chuyển đến BigQuery.
- 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".

- 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.
- Nhập
bq data preparation demovào thanh tìm kiếm rồi nhấn Enter.

- Đăng ký nhận thông tin về Trang thông tin: Chọn trang thông tin
bq data preparation demotrong kết quả tìm kiếm. - Trên trang thông tin chi tiết, hãy nhấp vào nút Đăng ký.
- 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.

- 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
- 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ảngstg_product. - 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.

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 |).

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.

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á.
- 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'')
- Chọn Xem trước

- 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Ố.
- 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)
- Chọn Áp dụng.
Giờ đây, bạn sẽ thấy 3 bước đã áp dụng trong danh sách bước.

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
- 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 đó.

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.
- Chọn "Chỉnh sửa".

Đề 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.
- 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".
- Đặt tên là ProductName.

- Xem trước các thay đổi để đảm bảo mọi thứ đều ổn.
- Á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.
- Nhấp vào biểu tượng
Add Stepđể thêm một bước chuyển đổi mới.

- Chọn
Transformationtrong trình đơn thả xuống - 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.

- Giữ nguyên Cột mục tiêu là "Sản phẩm".
- Nhấp vào Áp dụng.
Phép biến đổi sẽ cho bạn kết quả như sau.

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.
- Nhấp vào biểu tượng
Add Step - Chọn
Join - Duyệt xem bảng
stg_extended_product.

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. 
- Bạn cũng có thể chọn Xem trước để xem trước kết quả.
- 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.

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.
- 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.

- 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))
- 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. - Chọn
Transformation. - 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))
- Đặt
Target ColumnsthànhLaunchDate. - Nhấp vào
Apply.
Cột LaunchDate hiện có định dạng ngày nhất quán.

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.
- Nhấp vào
ADD STEP. - Chọn
Destination. - Điền các thông số bắt buộc: Tập dữ liệu:
bq_data_preparation_demoBảng:DimProduct - Nhấp vào
Save.

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.

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
- Nhấp vào nút
Morebên cạnh tiêu đềstg_product data preparation. - Trong phần
Setting, hãy chọnError Table. - Đá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ọn30 days (default)
- Nhấp vào
Save.

Thiết lập quy trình xác thực trên cột Nhà sản xuất
- Chọn cột Nhà sản xuất.
- 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.

- 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
- 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".

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).
- Chuyển đến thẻ
Schema - Nhấp vào biểu tượng 3 dấu chấm bên cạnh cột
ProductID_1. - 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.
- 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útSave. 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