1. Giới thiệu
Lần cập nhật gần đây nhất: ngày 28 tháng 02 năm 2020
Lớp học lập trình này minh hoạ một mẫu nhập dữ liệu để nhập hàng loạt dữ liệu chăm sóc sức khoẻ ở định dạng CSV vào BigQuery. Chúng tôi sẽ sử dụng quy trình Dữ liệu lô dữ liệu kết hợp của Cloud Data cho phòng thí nghiệm này. Dữ liệu xét nghiệm thực tế về hoạt động chăm sóc sức khoẻ đã được tạo và cung cấp trong bộ chứa Google Cloud Storage (gs://hcls_testing_data_fhir_10_patients/csv/) cho bạn.
Trong lớp học lập trình này, bạn sẽ tìm hiểu:
- Cách nhập dữ liệu CSV (tải theo lịch theo lô) từ GCS vào BigQuery bằng Cloud Data Fusion.
- Cách xây dựng quy trình tích hợp dữ liệu một cách trực quan trong Cloud Data Fusion để tải, chuyển đổi và che giấu dữ liệu chăm sóc sức khoẻ hàng loạt.
Bạn cần gì để chạy lớp học lập trình này?
- Bạn cần có quyền truy cập vào một Dự án GCP.
- Bạn phải được chỉ định vai trò Chủ sở hữu đối với Dự án GCP.
- Dữ liệu chăm sóc sức khoẻ ở định dạng CSV, bao gồm cả tiêu đề.
Nếu bạn không có Dự án GCP, hãy làm theo các bước này để tạo một Dự án GCP mới.
Dữ liệu chăm sóc sức khoẻ ở định dạng CSV đã được tải sẵn vào bộ chứa GCS tại gs://hcls_testing_data_fhir_10_patients/csv/. Mỗi tệp CSV tài nguyên có cấu trúc giản đồ riêng. Ví dụ: Patients.csv có giản đồ khác với Providers.csv. Bạn có thể tìm thấy các tệp giản đồ được tải trước tại gs://hcls_testing_data_fhir_10_patients/csv_schemas.
Nếu cần một tập dữ liệu mới, bạn luôn có thể tạo tập dữ liệu đó bằng SyntheaTM. Sau đó, tải tệp này lên GCS thay vì sao chép tệp từ bộ chứa ở bước Sao chép dữ liệu đầu vào.
2. Thiết lập dự án GCP
Khởi chạy các biến shell cho môi trường của bạn.
Để tìm PROJECT_ID, hãy tham khảo bài viết Xác định dự án.
<!-- CODELAB: Initialize shell variables -> <!-- Your current GCP Project ID -> export PROJECT_ID=<PROJECT_ID> <!-- A new GCS Bucket in your current Project - INPUT -> export BUCKET_NAME=<BUCKET_NAME> <!-- A new BQ Dataset ID - OUTPUT -> export DATASET_ID=<DATASET_ID>
Tạo bộ chứa GCS để lưu trữ dữ liệu đầu vào và nhật ký lỗi bằng công cụ SSO.
gsutil mb -l us gs://$BUCKET_NAME
Sử dụng tập dữ liệu tổng hợp.
- Từ địa chỉ email bạn đang dùng để đăng nhập vào Cloud Console, hãy gửi email đến hcls-solutions-external+subscribe@google.com để yêu cầu tham gia.
- Bạn sẽ nhận được một email hướng dẫn cách xác nhận thao tác đó.
- Sử dụng lựa chọn này để trả lời email để tham gia nhóm. ĐỪNG nhấp vào nút này.
- Sau khi nhận được email xác nhận, bạn có thể chuyển sang bước tiếp theo trong lớp học lập trình.
Sao chép dữ liệu đầu vào.
gsutil -m cp -r gs://hcls_testing_data_fhir_10_patients/csv gs://$BUCKET_NAME
Tạo Tập dữ liệu BigQuery.
bq mk --location=us --dataset $PROJECT_ID:$DATASET_ID
3. Thiết lập môi trường Cloud Data Fusion
Làm theo các bước sau để bật API Cloud Data Fusion và cấp các quyền cần thiết:
Bật API.
- Chuyển đến Thư viện API Bảng điều khiển GCP.
- Trong danh sách dự án, hãy chọn dự án của bạn.
- Trong Thư viện API, hãy chọn API bạn muốn bật. Nếu bạn cần trợ giúp về cách tìm API, hãy sử dụng trường tìm kiếm và/hoặc bộ lọc.
- Trên trang API, hãy nhấp vào BẬT.
Tạo một phiên bản Cloud Data Fusion.
- Trong Bảng điều khiển GCP, hãy chọn ProjectID (mã dự án).
- Chọn Data Fusion từ trình đơn bên trái, sau đó nhấp vào nút TẠO MỘT TÌNH TRẠNG ở giữa trang (tạo thành phần đầu tiên) hoặc nhấp vào nút TẠO TÌNH TRẠNG ở trình đơn trên cùng (tạo thêm).
- Cung cấp tên phiên bản. Chọn Enterprise (Doanh nghiệp).
- Nhấp vào nút TẠO.
Thiết lập quyền thực thể.
Sau khi tạo một phiên bản, hãy làm theo các bước sau để cấp tài khoản dịch vụ được liên kết với quyền thực thể trên dự án của bạn:
- Chuyển đến trang chi tiết về phiên bản bằng cách nhấp vào tên phiên bản.
- Sao chép tài khoản dịch vụ.
- Chuyển đến trang IAM của dự án.
- Trên trang quyền IAM, giờ đây, chúng ta sẽ thêm tài khoản dịch vụ làm thành viên mới và cấp cho tài khoản đó vai trò Nhân viên hỗ trợ dịch vụ Cloud Data Fusion API. Nhấp vào nút Thêm, rồi dán "tài khoản dịch vụ" trong trường Thành viên mới và chọn Quản lý dịch vụ -> Vai trò Tác nhân máy chủ Cloud Data Fusion API.
- Nhấp vào Lưu.
Sau khi hoàn tất các bước này, bạn có thể bắt đầu sử dụng Cloud Data Fusion bằng cách nhấp vào đường liên kết Xem phiên bản trên trang các phiên bản Cloud Data Fusion hoặc trang chi tiết về một phiên bản.
Thiết lập quy tắc tường lửa.
- Chuyển đến Bảng điều khiển GCP -> Mạng VPC -> Các quy tắc về tường lửa để kiểm tra xem quy tắc mặc định-allow-ssh có tồn tại hay không.
- Nếu không, hãy thêm quy tắc tường lửa để cho phép tất cả lưu lượng truy cập SSH vào mạng mặc định.
Sử dụng dòng lệnh:
gcloud beta compute --project={PROJECT_ID} firewall-rules create default-allow-ssh --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:22 --source-ranges=0.0.0.0/0 --enable-logging
Sử dụng giao diện người dùng: Nhấp vào Create Firewall Rule (Tạo quy tắc tường lửa) rồi điền thông tin:
4. Tạo một giản đồ để biến đổi
Giờ chúng ta đã có môi trường Cloud Fusion trong GCP, hãy xây dựng một giản đồ. Chúng tôi cần giản đồ này để chuyển đổi dữ liệu CSV.
- Trong cửa sổ Cloud Data Fusion, hãy nhấp vào đường liên kết Xem phiên bản trong cột Thao tác. Bạn sẽ được chuyển hướng đến một trang khác. Nhấp vào url được cung cấp để mở phiên bản Cloud Data Fusion. Nhấp vào "Bắt đầu tham quan" theo ý bạn hoặc "Không, cảm ơn" trên cửa sổ bật lên Chào mừng.
- Mở rộng biểu tượng "hamburger" trình đơn, chọn Pipeline -> (Quy trình) -> Phòng thu
- Trong mục Chuyển đổi trong bảng Trình bổ trợ ở bên trái, hãy nhấp đúp vào nút Wrangler, sẽ xuất hiện trong giao diện người dùng Quy trình dữ liệu.
- Trỏ đến nút Wrangler rồi nhấp vào Properties (Thuộc tính). Nhấp vào nút Wrangle, sau đó chọn một tệp nguồn .csv (ví dụ: encrypted.csv). Tệp này phải có tất cả các trường dữ liệu để xây dựng giản đồ mong muốn.
- Nhấp vào Mũi tên xuống (Quy tắc chuyển đổi cột) bên cạnh mỗi tên cột (ví dụ: nội dung).
- Theo mặc định, quá trình nhập ban đầu sẽ giả định chỉ có một cột trong tệp dữ liệu của bạn. Để phân tích cú pháp dưới dạng CSV, hãy chọn Phân tích cú pháp → CSV, sau đó chọn dấu phân cách và chọn "Đặt hàng đầu tiên làm tiêu đề" khi thích hợp. Nhấp vào nút Áp dụng.
- Nhấp vào mũi tên xuống bên cạnh trường Nội dung, chọn Xoá Cột để xoá trường Nội dung. Ngoài ra, bạn có thể thử các phép biến đổi khác như xoá cột, thay đổi loại dữ liệu cho một số cột (mặc định là loại "chuỗi"), chia tách cột, đặt tên cột, v.v.
- Các "Cột" và "Các bước chuyển đổi" các thẻ hiển thị giản đồ đầu ra và công thức của Wrangler. Nhấp vào Áp dụng ở góc trên bên phải. Nhấp vào nút Xác thực. Thông báo "Không tìm thấy lỗi" màu xanh lục biểu thị thành công.
- Trong Thuộc tính Wrangler, hãy nhấp vào trình đơn thả xuống Hành động để Xuất giản đồ mong muốn vào bộ nhớ cục bộ để Nhập sau này nếu cần.
- Lưu Công thức Wrangler để sử dụng sau này.
parse-as-csv :body ',' true drop body
- Để đóng cửa sổ Thuộc tính Wrangler, hãy nhấp vào nút X.
5. Xây dựng các nút cho quy trình
Trong phần này, chúng ta sẽ xây dựng các thành phần quy trình.
- Trong giao diện người dùng Quy trình dữ liệu, ở phía trên bên trái, bạn sẽ thấy loại quy trình là Quy trình dữ liệu – Lô.
- Có nhiều mục trên bảng điều khiển bên trái như Bộ lọc, Nguồn, Chuyển đổi, Phân tích, Bồn lưu trữ, Điều kiện và Hành động, Trình xử lý lỗi và Cảnh báo, trong đó bạn có thể chọn một hoặc nhiều nút cho quy trình.
Nút nguồn
- Chọn nút Nguồn.
- Trong mục Nguồn trên bảng Trình bổ trợ ở bên trái, hãy nhấp đúp vào nút Google Cloud Storage xuất hiện trong giao diện người dùng Quy trình dữ liệu.
- Trỏ đến nút nguồn GCS rồi nhấp vào Properties (Thuộc tính).
- Điền vào trường bắt buộc. Thiết lập các trường sau:
- Nhãn = {văn bản bất kỳ}
- Tên tham chiếu = {any text}
- Mã dự án = tự động phát hiện
- Đường dẫn = GCS URL vào nhóm trong dự án hiện tại. Ví dụ: gs://$BUCKET_NAME/csv/
- Định dạng = văn bản
- Trường đường dẫn = tên tệp
- Chỉ tên tệp đường dẫn = true
- Đọc tệp theo quy tắc đệ quy = true
- Thêm trường "filename" chuyển đến Giản đồ đầu ra GCS bằng cách nhấp vào nút +.
- Nhấp vào Tài liệu để xem nội dung giải thích chi tiết. Nhấp vào nút Xác thực. Thông báo "Không tìm thấy lỗi" màu xanh lục biểu thị thành công.
- Để đóng thuộc tính GCS, hãy nhấp vào nút X.
Chuyển đổi nút
- Chọn nút Chuyển đổi.
- Trong mục Chuyển đổi trong bảng trình bổ trợ ở bên trái, hãy nhấp đúp vào nút Wrangler, xuất hiện trong giao diện người dùng Quy trình dữ liệu. Kết nối nút nguồn GCS với nút biến đổi Wrangler.
- Trỏ đến nút Wrangler rồi nhấp vào Properties (Thuộc tính).
- Nhấp vào trình đơn thả xuống Thao tác rồi chọn Nhập để nhập một giản đồ đã lưu (ví dụ: gs://hcls_testing_data_fhir_10_patients/csv_Schema/ giản đồ (Bệnh nhân).json) rồi dán công thức nấu ăn đã lưu ở phần trước.
- Bạn cũng có thể sử dụng lại nút Wrangler trong mục: Tạo giản đồ để biến đổi.
- Điền vào trường bắt buộc. Thiết lập các trường sau:
- Nhãn = {văn bản bất kỳ}
- Tên trường nhập = {*}
- Điều kiện tiên quyết = {filename != "patients.csv"} để phân biệt từng tệp đầu vào (ví dụ: encrypted.csv, provider.csv, visible.csv, v.v.) với nút Nguồn.
- Thêm một nút JavaScript để thực thi JavaScript do người dùng cung cấp nhằm chuyển đổi thêm các bản ghi. Trong lớp học lập trình này, chúng ta sử dụng nút JavaScript để lấy dấu thời gian cho mỗi lần cập nhật bản ghi. Kết nối nút chuyển đổi Wrangler với nút chuyển đổi JavaScript. Mở Thuộc tính JavaScript và thêm hàm sau:
function transform(input, emitter, context) { input.TIMESTAMP = (new Date()).getTime()*1000; emitter.emit(input); }
- Thêm trường có tên TIMESTAMP vào Giản đồ đầu ra (nếu không tồn tại) bằng cách nhấp vào dấu +. Chọn loại dữ liệu là dấu thời gian.
- Nhấp vào Tài liệu để xem nội dung giải thích chi tiết. Nhấp vào nút Xác thực để xác thực tất cả thông tin nhập. Màu xanh lục "Không tìm thấy lỗi" biểu thị thành công.
- Để đóng cửa sổ Chuyển đổi thuộc tính, nhấp vào nút X.
Che giấu và loại bỏ thông tin nhận dạng dữ liệu
- Bạn có thể chọn từng cột dữ liệu bằng cách nhấp vào mũi tên xuống trong cột rồi áp dụng quy tắc che giấu dữ liệu trong phần lựa chọn Dữ liệu về mặt nạ theo yêu cầu của bạn (ví dụ: cột Số an sinh xã hội).
- Bạn có thể thêm các Chỉ thị khác trong cửa sổ Công thức của nút Wrangler. Ví dụ: sử dụng lệnh băm với thuật toán băm theo cú pháp sau để loại bỏ thông tin nhận dạng:
hash <column> <algorithm> <encode> <column>: name of the column <algorithm>: Hashing algorithm (i.e. MD5, SHA-1, etc.) <encode>: default is true (hashed digest is encoded as hex with left-padding zeros). To disable hex encoding, set <encode> to false.
Nút bồn rửa
- Chọn nút bồn lưu trữ dữ liệu.
- Trong mục Bồn lưu trữ dữ liệu trong bảng Trình bổ trợ ở bên trái, hãy nhấp đúp vào nút BigQuery. Nút này sẽ xuất hiện trong giao diện người dùng Quy trình dữ liệu.
- Trỏ đến nút bồn lưu trữ dữ liệu BigQuery và nhấp vào Thuộc tính.
- Điền vào các trường bắt buộc. Thiết lập các trường sau:
- Nhãn = {văn bản bất kỳ}
- Tên tham chiếu = {any text}
- Mã dự án = tự động phát hiện
- Tập dữ liệu = Tập dữ liệu BigQuery được dùng trong dự án hiện tại (ví dụ: DATASET_ID)
- Bảng = {tên bảng}
- Nhấp vào Tài liệu để xem nội dung giải thích chi tiết. Nhấp vào nút Xác thực để xác thực tất cả thông tin nhập. Màu xanh lục "Không tìm thấy lỗi" biểu thị thành công.
- Để đóng Tài sản BigQuery, hãy nhấp vào nút X.
6. Xây dựng quy trình dữ liệu theo lô
Kết nối tất cả các nút trong một quy trình
- Kéo mũi tên kết nối > ở cạnh phải của nút nguồn và thả xuống ở cạnh bên trái của nút đích.
- Một quy trình có thể có nhiều nhánh nhận tệp đầu vào từ cùng một nút Nguồn GCS.
- Đặt tên cho quy trình.
Vậy là xong. Bạn vừa tạo quy trình dữ liệu Batch đầu tiên và có thể triển khai cũng như chạy quy trình.
Gửi thông báo về quy trình qua email (không bắt buộc)
Để sử dụng tính năng Gửi email cảnh báo quy trình, cấu hình này yêu cầu thiết lập máy chủ thư để gửi thư từ một phiên bản máy ảo. Hãy truy cập đường liên kết tham khảo bên dưới để biết thêm thông tin:
Gửi email từ một thực thể | Tài liệu về Compute Engine
Trong lớp học lập trình này, chúng ta sẽ thiết lập dịch vụ chuyển tiếp thư thông qua Mailgun bằng cách làm theo các bước sau:
- Làm theo hướng dẫn trong phần Gửi email bằng Mailgun | Tài liệu về Compute Engine để thiết lập một tài khoản bằng Mailgun và định cấu hình dịch vụ chuyển tiếp email. Dưới đây là các nội dung sửa đổi khác.
- Thêm tất cả người nhận địa chỉ email vào danh sách được uỷ quyền của Mailgun. Bạn có thể tìm thấy danh sách này trong tuỳ chọn Mailgun>Gửi>Tổng quan trên bảng điều khiển bên trái.
Sau khi người nhận nhấp vào "Tôi đồng ý" trong email gửi từ support@mailgun.net, địa chỉ email của họ được lưu trong danh sách được uỷ quyền để nhận email cảnh báo về quy trình.
- Bước 3 của phần "Trước khi bắt đầu" - tạo quy tắc Tường lửa như sau:
- Bước 3 của "Định cấu hình Mailgun làm dịch vụ chuyển tiếp thư bằng Postfix". Chọn Trang web Internet hoặc Internet có máy chủ thông minh, thay vì Chỉ cục bộ như đề cập trong hướng dẫn.
- Bước 4 của "Định cấu hình Mailgun làm chế độ chuyển tiếp thư bằng Postfix". Chỉnh sửa vi /etc/postfix/main.cf để thêm 10.128.0.0/9 vào cuối mynetworks.
- Chỉnh sửa vi /etc/postfix/master.cf để thay đổi smtp (25) mặc định thành cổng 587.
- Ở góc trên bên phải của Data Fusion Studio, hãy nhấp vào Định cấu hình. Nhấp vào Cảnh báo kênh rồi nhấp vào nút + để mở cửa sổ Cảnh báo. Chọn SendEmail.
- Điền vào biểu mẫu cấu hình Email. Chọn hoàn thành, thành công hoặc không thành công trong trình đơn thả xuống Điều kiện chạy cho từng loại cảnh báo. Nếu Bao gồm mã thông báo quy trình công việc = false, thì chỉ thông tin từ trường Thông báo được gửi. Nếu Bao gồm mã thông báo quy trình công việc = true, thì thông tin chi tiết từ trường Thông báo và Mã quy trình công việc sẽ được gửi. Bạn phải sử dụng chữ thường cho Giao thức. Sử dụng "giả mạo" bất kỳ email khác với địa chỉ email của công ty cho Người gửi.
7. Định cấu hình, triển khai, chạy/lên lịch quy trình
- Ở góc trên bên phải của Data Fusion Studio, hãy nhấp vào Định cấu hình. Chọn Spark cho Cấu hình động cơ. Nhấp vào Lưu trong cửa sổ Định cấu hình.
- Nhấp vào Xem trước để xem trước dữ liệu**,** rồi nhấp vào **Xem trước** lần nữa để quay lại cửa sổ trước đó. Bạn cũng có thể **Chạy** quy trình ở chế độ Xem trước.
- Nhấp vào Nhật ký để xem nhật ký.
- Nhấp vào Lưu để lưu tất cả các thay đổi.
- Nhấp vào Nhập để nhập cấu hình quy trình đã lưu khi tạo quy trình mới.
- Nhấp vào Export (Xuất) để xuất cấu hình quy trình.
- Nhấp vào Triển khai để triển khai quy trình.
- Sau khi triển khai, hãy nhấp vào Run (Chạy) và đợi quy trình chạy hoàn tất.
- Bạn có thể Sao chép quy trình bằng cách chọn Sao chép trong nút Thao tác.
- Bạn có thể Xuất cấu hình quy trình bằng cách chọn Export (Xuất) trong nút Actions (Thao tác).
- Nhấp vào Điều kiện kích hoạt đến hoặc Điều kiện kích hoạt ra ngoài ở cạnh bên trái hoặc bên phải của cửa sổ Studio để đặt điều kiện kích hoạt quy trình nếu muốn.
- Nhấp vào Lên lịch để lên lịch cho quy trình chạy và tải dữ liệu theo định kỳ.
- Tóm tắt hiển thị các biểu đồ về Nhật ký chạy, bản ghi, nhật ký lỗi và cảnh báo.
8. Xác thực
- Đã thực thi thành công quy trình Xác thực.
- Xác thực xem Tập dữ liệu BigQuery có tất cả các bảng hay không.
bq ls $PROJECT_ID:$DATASET_ID
tableId Type Labels Time Partitioning
----------------- ------- -------- -------------------
Allergies TABLE
Careplans TABLE
Conditions TABLE
Encounters TABLE
Imaging_Studies TABLE
Immunizations TABLE
Medications TABLE
Observations TABLE
Organizations TABLE
Patients TABLE
Procedures TABLE
Providers TABLE
- Nhận email cảnh báo (nếu đã định cấu hình).
Xem kết quả
Để xem kết quả sau khi quy trình chạy:
- Truy vấn bảng trong giao diện người dùng BigQuery. CHUYỂN ĐẾN GIAO DIỆN NGƯỜI DÙNG BIGQUERY
- Cập nhật truy vấn bên dưới thành tên, tập dữ liệu và bảng của dự án của bạn.
9. Dọn dẹp
Để tránh phát sinh phí vào tài khoản Google Cloud Platform của bạn cho các tài nguyên được sử dụng trong hướng dẫn này:
Sau khi xem xong phần hướng dẫn, bạn có thể dọn dẹp các tài nguyên mà bạn đã tạo trên GCP để chúng không chiếm hạn mức của bạn và bạn sẽ không bị tính phí cho các tài nguyên đó trong tương lai. Các phần sau đây mô tả cách xoá hoặc tắt những tài nguyên này.
Xoá tập dữ liệu BigQuery
Hãy làm theo các hướng dẫn sau để xoá tập dữ liệu BigQuery mà bạn đã tạo trong phần hướng dẫn này.
Xoá bộ chứa GCS
Làm theo hướng dẫn sau để xoá bộ chứa GCS mà bạn đã tạo trong phần hướng dẫn này.
Xoá thực thể Cloud Data Fusion
Làm theo các hướng dẫn này để xoá phiên bản Cloud Data Fusion.
Xoá dự án
Cách dễ nhất để loại bỏ việc thanh toán là xoá dự án bạn đã tạo cho phần hướng dẫn.
Cách xoá dự án:
- Trong Bảng điều khiển GCP, hãy chuyển đến trang Dự án. CHUYỂN ĐẾN TRANG DỰ ÁN
- Trong danh sách dự án, hãy chọn dự án mà bạn muốn xoá rồi nhấp vào Delete (Xoá).
- Trong hộp thoại, hãy nhập mã dự án rồi nhấp vào Tắt để xoá dự án.
10. Xin chúc mừng
Xin chúc mừng! Bạn đã hoàn tất thành công lớp học lập trình để nhập dữ liệu chăm sóc sức khoẻ vào BigQuery bằng Cloud Data Fusion.
Bạn đã nhập dữ liệu CSV từ Google Cloud Storage vào BigQuery.
Bạn đã xây dựng quy trình tích hợp dữ liệu một cách trực quan để tải, chuyển đổi và che giấu dữ liệu chăm sóc sức khoẻ hàng loạt.
Giờ đây, bạn đã biết các bước chính cần thiết để bắt đầu hành trình Phân tích dữ liệu trong lĩnh vực chăm sóc sức khoẻ bằng BigQuery trên Google Cloud Platform.