掃描資料品質問題
本文說明如何搭配使用 BigQuery 和 Dataplex Universal Catalog,確保資料符合品質期望。Dataplex Universal Catalog 自動資料品質功能可讓您定義及評估 BigQuery 資料表中的資料品質。您可以自動掃描資料、根據定義的規則驗證資料,以及在資料不符合品質規定時記錄快訊。
如要進一步瞭解自動資料品質,請參閱「自動資料品質總覽」。
事前準備
-
Enable the Dataplex API.
- 選用:如要讓 Dataplex Universal Catalog 根據資料剖析掃描結果產生資料品質規則建議,請建立並執行資料剖析掃描。
必要的角色
如要對 BigQuery 資料表執行資料品質掃描,您需要有權讀取 BigQuery 資料表,以及在用於掃描資料表的專案中建立 BigQuery 工作的權限。
如果 BigQuery 資料表和資料品質掃描位於不同專案,您需要為包含資料品質掃描的專案,授予對應 BigQuery 資料表的讀取權限給 Dataplex Universal Catalog 服務帳戶。
如果資料品質規則參照其他資料表,掃描專案的服務帳戶必須對這些資料表擁有讀取權限。
如要取得將掃描結果匯出至 BigQuery 資料表所需的權限,請管理員在結果資料集和資料表上,授予 Dataplex Universal Catalog 服務帳戶 BigQuery 資料編輯者 (
roles/bigquery.dataEditor
) 身分與存取權管理角色。這會授予下列權限:bigquery.datasets.get
bigquery.tables.create
bigquery.tables.get
bigquery.tables.getData
bigquery.tables.update
bigquery.tables.updateData
如果 BigQuery 資料是透過 Dataplex Universal Catalog 湖泊整理,請授予 Dataplex Universal Catalog 服務帳戶 Dataplex 中繼資料讀取者 (
roles/dataplex.metadataReader
) 和 Dataplex 檢視者 (roles/dataplex.viewer
) IAM 角色。 或者,您需要具備下列所有權限:dataplex.lakes.list
dataplex.lakes.get
dataplex.zones.list
dataplex.zones.get
dataplex.entities.list
dataplex.entities.get
dataplex.operations.get
如要掃描 Cloud Storage 中的 BigQuery 外部資料表,請將 bucket 的「Storage 物件檢視者」角色 (
roles/storage.objectViewer
) 授予 Dataplex Universal Catalog 服務帳戶。或者,您也可以將下列權限指派給 Dataplex Universal Catalog 服務帳戶:storage.buckets.get
storage.objects.get
如要將資料品質掃描結果發布為 Dataplex Universal Catalog 中繼資料,您必須取得資料表的 BigQuery 資料編輯者 (
roles/bigquery.dataEditor
) IAM 角色,以及資料表所在位置的@bigquery
項目群組dataplex.entryGroups.useDataQualityScorecardAspect
權限。或者,您必須在與資料表相同位置的@bigquery
項目群組中,獲派 Dataplex Catalog 編輯者 (roles/dataplex.catalogEditor
) 角色。或者,您需要具備下列所有權限:
bigquery.tables.get
- 桌上bigquery.tables.update
- 桌上bigquery.tables.updateData
- 桌上bigquery.tables.delete
- 桌上dataplex.entryGroups.useDataQualityScorecardAspect
- 項目群組的@bigquery
或者,您需要下列所有權限:
dataplex.entries.update
-@bigquery
項目群組dataplex.entryGroups.useDataQualityScorecardAspect
- 項目群組的@bigquery
如要存取受 BigQuery 資料欄層級存取權政策保護的資料欄,請為這些資料欄指派 Dataplex Universal Catalog 服務帳戶權限。建立或更新資料掃描作業的使用者也需要欄的權限。
如果資料表已啟用 BigQuery 資料列層級存取權政策,您就只能掃描 Dataplex Universal Catalog 服務帳戶可見的資料列。請注意,系統不會評估個別使用者的存取權限是否符合資料列層級政策。
必要的資料掃描角色
如要使用自動資料品質功能,請要求管理員授予下列其中一種 IAM 角色:
DataScan
資源的完整存取權:Dataplex DataScan 管理員 (roles/dataplex.dataScanAdmin
)- 如要建立
DataScan
資源:專案的 Dataplex DataScan 建立者 (roles/dataplex.dataScanCreator
) DataScan
資源的寫入權限:Dataplex DataScan 編輯者 (roles/dataplex.dataScanEditor
)- 具備
DataScan
資源的讀取權限,但不包括規則和結果: Dataplex DataScan 檢視者 (roles/dataplex.dataScanViewer
) DataScan
資源的讀取權,包括規則和結果: Dataplex DataScan 資料檢視者 (roles/dataplex.dataScanDataViewer
)
下表列出 DataScan
權限:
權限名稱 | 授予下列權限: |
---|---|
dataplex.datascans.create |
建立 DataScan |
dataplex.datascans.delete |
刪除 DataScan |
dataplex.datascans.get |
查看 ID 或時間表等作業中繼資料,但不包括結果和規則 |
dataplex.datascans.getData |
查看 DataScan 詳細資料,包括規則和結果 |
dataplex.datascans.list |
清單 DataScan |
dataplex.datascans.run |
執行 DataScan |
dataplex.datascans.update |
更新 DataScan 的說明 |
dataplex.datascans.getIamPolicy |
查看掃描作業目前的 IAM 權限 |
dataplex.datascans.setIamPolicy |
設定掃描作業的 IAM 權限 |
建立資料品質掃描作業
控制台
在 Google Cloud 控制台的 BigQuery「中繼資料管理」頁面,前往「資料剖析與品質」分頁。
按一下「建立資料品質掃描作業」。
在「定義掃描」視窗中,填入下列欄位:
選用:輸入「顯示名稱」。
輸入 ID。請參閱資源命名慣例。
選用:輸入說明。
在「Table」(資料表) 欄位中,按一下「Browse」(瀏覽)。選擇要掃描的資料表,然後按一下「選取」。 系統僅支援標準 BigQuery 資料表。
如為多區域資料集內的資料表,請選擇要建立資料掃描的區域。
如要瀏覽 Dataplex Universal Catalog 湖泊中整理的資料表,請按一下「Browse within Dataplex Lakes」(在 Dataplex 湖泊中瀏覽)。
在「範圍」欄位中,選擇「增量」或「完整資料」。
- 如果選擇「增量」:在「時間戳記資料欄」欄位中,從 BigQuery 資料表選取
DATE
或TIMESTAMP
類型的資料欄,這類資料欄的值會隨著新增記錄而增加,並能用來識別新的記錄。另外,這類資料欄也可用來將資料表分區。
- 如果選擇「增量」:在「時間戳記資料欄」欄位中,從 BigQuery 資料表選取
如要篩選資料,請勾選「篩選列」核取方塊。提供由有效 SQL 運算式組成的資料列篩選器,該運算式可用於 GoogleSQL 語法的
WHERE
子句。例如:col1 >= 0
。篩選器可以結合多個資料欄條件。例如:col1 >= 0 AND col2 < 10
。如要對資料取樣,請在「取樣大小」清單中選取取樣百分比。請選擇介於 0.0% 和 100.0% 之間的百分比值,最多可有 3 位小數。如果是較大的資料集,請選擇較低的取樣百分比。舉例來說,如果資料表大小為 1 PB,且您輸入的值介於 0.1% 到 1.0% 之間,資料品質掃描就會取樣 1 到 10 TB 的資料。如果是增量資料掃描,資料品質掃描會對最新增量套用取樣。
如要將資料品質掃描結果發布為 Dataplex Universal Catalog 中繼資料,請選取「將結果發布至 BigQuery 和 Dataplex Catalog」核取方塊。
您可以在來源資料表的 BigQuery 和 Dataplex Universal Catalog 頁面中,查看「資料品質」分頁的最新掃描結果。如要讓使用者存取已發布的掃描結果,請參閱本文的「授予資料剖析掃描結果的存取權」一節。
在「時間表」部分,選擇下列其中一個選項:
重複:按照排程執行資料品質掃描作業,排程可以是每小時、每日、每週、每月或自訂。指定掃描的執行頻率和時間。如果選擇自訂,請使用 cron 格式指定時間表。
隨選:視需要執行資料品質掃描作業。
按一下「繼續」。
在「資料品質規則」視窗中,定義要為這項資料品質掃描設定的規則。
按一下「新增規則」,然後選擇下列任一做法。
以資料概況為基礎的建議:根據現有的資料剖析掃描結果,從建議中建立規則。
選擇資料欄:選取要取得建議規則的資料欄。
選擇掃描專案:如果資料剖析掃描作業所在的專案,與您建立資料品質掃描作業的專案不同,請選取要從哪個專案提取剖析掃描作業。
選擇資料概況結果:選取一或多個資料概況結果,然後按一下「確定」。系統會根據這些資訊填入建議規則清單,方便您做為起點。
找出要新增的規則,勾選對應的核取方塊,然後按一下「選取」。選取後,規則會新增至目前的規則清單。然後編輯規則。
內建規則類型:根據預先定義的規則建立規則。 請參閱預先定義的規則清單。
選擇資料欄:選取要套用規則的資料欄。
選擇規則類型:選取要選擇的規則類型,然後按一下「確定」。顯示的規則類型取決於您選取的資料欄。
找出要新增的規則,勾選對應的核取方塊,然後按一下「選取」。選取後,規則會新增至目前的規則清單。然後編輯規則。
SQL 資料列檢查規則:建立要套用至每個資料列的自訂 SQL 規則。
在「維度」中,選擇一個維度。
在「通過門檻」中,選擇必須通過檢查的記錄百分比。
在「欄名稱」中選擇資料欄。
在「Provide a SQL expression」(提供 SQL 運算式) 欄位中,輸入評估結果為布林值
true
(通過) 或false
(失敗) 的 SQL 運算式。詳情請參閱支援的自訂 SQL 規則類型,以及「定義資料品質規則」一文中的範例。按一下「新增」。
SQL 匯總檢查規則:建立自訂 SQL 資料表條件規則。
在「維度」中,選擇一個維度。
在「欄名稱」中選擇資料欄。
在「Provide a SQL expression」(提供 SQL 運算式) 欄位中,輸入評估結果為布林值
true
(通過) 或false
(失敗) 的 SQL 運算式。詳情請參閱支援的自訂 SQL 規則類型,以及「定義資料品質規則」一文中的範例。按一下「新增」。
SQL 斷言規則:建立自訂 SQL 斷言規則,檢查資料是否處於無效狀態。
在「維度」中,選擇一個維度。
選用:在「欄名稱」中選擇欄。
在「提供 SQL 陳述式」欄位中,輸入會傳回符合無效狀態資料列的 SQL 陳述式。如果傳回任何資料列,即代表這項規則失敗。請省略 SQL 陳述式結尾的分號。詳情請參閱「支援的自訂 SQL 規則類型」和「定義資料品質規則」中的範例。
按一下「新增」。
選用:您可以為任何資料品質規則指派自訂規則名稱,用於監控和警報,以及說明。如要這麼做,請編輯規則並指定下列詳細資料:
- 規則名稱:輸入自訂規則名稱,長度上限為 63 個半形字元。 規則名稱可包含英文字母 (a-z、A-Z)、數字 (0-9) 和連字號 (-),且開頭須為英文字母,結尾須為數字或英文字母。
- 說明:輸入規則說明,長度上限為 1,024 個字元。
重複上述步驟,在資料品質掃描作業中新增其他規則。完成後,按一下「繼續」。
選用步驟:將掃描結果匯出至 BigQuery 標準資料表。在「將掃描結果匯出至 BigQuery 資料表」部分,執行下列操作:
在「選取 BigQuery 資料集」欄位中,按一下「瀏覽」。選取 BigQuery 資料集,用來儲存資料品質掃描結果。
在「BigQuery table」(BigQuery 資料表) 欄位中,指定要儲存資料品質掃描結果的資料表。如果使用現有資料表,請確認該資料表與匯出資料表結構定義相容。如果指定的資料表不存在,Dataplex Universal Catalog 會為您建立。
選用:新增標籤。標籤是鍵/值組合,可用來將相關的物件分組,或與其他 Google Cloud 資源組合。
選用:設定電子郵件通知報告,在資料品質掃描工作完成時通知相關人員。在「通知報表」部分,按一下「新增電子郵件 ID」
,然後輸入最多五個電子郵件地址。然後選取要傳送報表的狀況:- 品質分數 (<=):如果作業成功,但資料品質分數低於指定目標分數,系統就會傳送報表。輸入介於 0 到 100 之間的分數。
- 工作失敗:無論資料品質結果如何,只要工作本身失敗,就會傳送報告。
- 工作完成 (成功或失敗):工作結束時傳送報表,無論資料品質結果為何。
點選「建立」。
掃描作業建立完成後,只要按一下「立即執行」,即可隨時執行掃描。
gcloud
如要建立資料品質掃描作業,請使用 gcloud dataplex datascans create data-quality
指令。
如果來源資料是依 Dataplex Universal Catalog 湖泊整理,請加入 --data-source-entity
旗標:
gcloud dataplex datascans create data-quality DATASCAN \
--location=LOCATION \
--data-quality-spec-file=DATA_QUALITY_SPEC_FILE \
--data-source-entity=DATA_SOURCE_ENTITY
如果來源資料未整理到 Dataplex Universal Catalog 湖泊中,請加入 --data-source-resource
旗標:
gcloud dataplex datascans create data-quality DATASCAN \
--location=LOCATION \
--data-quality-spec-file=DATA_QUALITY_SPEC_FILE \
--data-source-resource=DATA_SOURCE_RESOURCE
請替換下列變數:
DATASCAN
:資料品質掃描的名稱。LOCATION
:要建立資料品質掃描作業的 Google Cloud 區域。DATA_QUALITY_SPEC_FILE
:包含資料品質掃描規格的 JSON 或 YAML 檔案路徑。檔案可以是本機檔案,也可以是前置字串為gs://
的 Cloud Storage 路徑。使用這個檔案指定掃描的資料品質規則。您也可以在這個檔案中指定其他詳細資料,例如篩選器、取樣百分比,以及掃描後動作,像是匯出至 BigQuery 或傳送電子郵件通知報告。請參閱 JSON 表示法說明文件和YAML 表示法範例。DATA_SOURCE_ENTITY
:包含資料品質掃描資料的 Dataplex Universal Catalog 實體。例如:projects/test-project/locations/test-location/lakes/test-lake/zones/test-zone/entities/test-entity
。DATA_SOURCE_RESOURCE
:包含資料品質掃描資料的資源名稱。例如://bigquery.googleapis.com/projects/test-project/datasets/test-dataset/tables/test-table
。
REST
如要建立資料品質掃描作業,請使用 dataScans.create
方法。
如要根據資料剖析掃描結果,使用規則建議建立資料品質掃描規則,請對資料剖析掃描呼叫 dataScans.jobs.generateDataQualityRules
方法,取得建議。
執行資料品質掃描作業
控制台
在 Google Cloud 控制台的 BigQuery「中繼資料管理」頁面,前往「資料剖析與品質」分頁。
按一下要執行的資料品質掃描作業。
按一下「立即執行」。
gcloud
如要執行資料品質掃描,請使用 gcloud dataplex datascans run
指令:
gcloud dataplex datascans run DATASCAN \ --location=LOCATION \
請替換下列變數:
LOCATION
:建立資料品質掃描作業的 Google Cloud 區域。DATASCAN
:資料品質掃描的名稱。
REST
如要執行資料品質掃描,請使用 dataScans.run
方法。
查看資料品質掃描結果
控制台
在 Google Cloud 控制台的 BigQuery「中繼資料管理」頁面,前往「資料剖析與品質」分頁。
按一下資料品質掃描作業的名稱。
「總覽」部分會顯示最近一次工作的相關資訊,包括掃描執行時間、各項工作掃描的記錄數量、所有資料品質檢查是否通過,以及失敗的資料品質檢查數量 (如有)。
「資料品質掃描設定」部分會顯示掃描的詳細資料。
如要查看工作的詳細資訊,例如指出通過規則百分比的資料品質分數、失敗的規則和工作記錄,請按一下「工作記錄」分頁標籤。然後按一下工作 ID。
gcloud
如要查看資料品質掃描工作的結果,請使用 gcloud dataplex datascans jobs describe
指令:
gcloud dataplex datascans jobs describe JOB \ --location=LOCATION \ --datascan=DATASCAN \ --view=FULL
請替換下列變數:
JOB
:資料品質掃描作業的作業 ID。LOCATION
:建立資料品質掃描的 Google Cloud 區域。DATASCAN
:工作所屬資料品質掃描的名稱。--view=FULL
:如要查看掃描作業結果,請指定FULL
。
REST
如要查看資料品質掃描結果,請使用 dataScans.get
方法。
查看已發布的結果
如果資料品質掃描結果發布為 Dataplex Universal Catalog 中繼資料,您可以在Google Cloud 控制台的 BigQuery 和 Dataplex Universal Catalog 頁面,以及來源資料表的「資料品質」分頁中,查看最新的掃描結果。
前往 Google Cloud 控制台的「BigQuery」頁面。
在「Explorer」窗格中,選取要查看資料品質掃描結果的資料表。
按一下「資料品質」分頁標籤。
系統會顯示最新發布的結果。
查看歷來掃描結果
Dataplex Universal Catalog 會儲存最近 300 項工作或過去一年的資料品質掃描記錄 (以先到者為準)。
控制台
在 Google Cloud 控制台的 BigQuery「中繼資料管理」頁面,前往「資料剖析與品質」分頁。
按一下資料品質掃描作業的名稱。
按一下「工作記錄」分頁標籤。
「工作記錄」分頁提供過去工作相關資訊,例如每項工作掃描的記錄數量、工作狀態、工作執行時間,以及每項規則是否通過。
如要查看工作的詳細資訊,請按一下「工作 ID」欄中的任一工作。
gcloud
如要查看歷來資料品質掃描工作,請使用 gcloud dataplex datascans jobs list
指令:
gcloud dataplex datascans jobs list \ --location=LOCATION \ --datascan=DATASCAN \
請替換下列變數:
LOCATION
:建立資料品質掃描的 Google Cloud 區域。DATASCAN
:要查看歷史工作的資料品質掃描名稱。
REST
如要查看歷來資料品質掃描工作,請使用 dataScans.jobs.list
方法。
授予資料品質掃描結果的存取權
如要允許貴機構中的使用者查看掃描結果,請按照下列步驟操作:
在 Google Cloud 控制台的 BigQuery「中繼資料管理」頁面,前往「資料剖析與品質」分頁。
按一下要分享結果的資料品質掃描。
按一下「Permissions」(權限) 分頁標籤。
請執行下列步驟:
- 如要授予主體存取權,請按一下「授予存取權」 。將「Dataplex DataScan 資料檢視者」角色授予相關聯的主體。
- 如要移除主體的存取權,請選取要移除 Dataplex DataScan DataViewer 角色的主體。依序點選 「移除存取權」,然後在系統提示時確認。
排解資料品質失敗問題
您可以使用 Cloud Logging 中的記錄,設定資料品質失敗的快訊。如需更多資訊 (包括查詢範例),請參閱「在 Cloud Logging 中設定快訊」。
針對每個含有失敗的資料列層級規則的工作,Dataplex Universal Catalog 會提供查詢,以取得失敗的記錄。執行這項查詢,即可查看不符合規則的記錄。
控制台
在 Google Cloud 控制台的 BigQuery「中繼資料管理」頁面,前往「資料剖析與品質」分頁。
按一下要排解記錄問題的資料品質掃描名稱。
按一下「工作記錄」分頁標籤。
按一下偵測到資料品質失敗的工作 ID。
在隨即開啟的工作結果視窗中,找到「規則」部分中的「查詢以取得失敗記錄」欄。按一下失敗規則的「將查詢複製到剪貼簿」。
在 BigQuery 中執行查詢,查看導致工作失敗的記錄。
gcloud
不支援。
REST
如要取得識別資料品質失敗的工作,請使用
dataScans.get
方法。在回應物件中,
failingRowsQuery
欄位會顯示查詢。在 BigQuery 中執行查詢,查看導致工作失敗的記錄。
管理特定資料表的資料品質掃描作業
本文的步驟說明如何使用Google Cloud 控制台的「BigQuery Metadata curation」(BigQuery 中繼資料管理) >「Data profiling & quality」(資料剖析與品質) 頁面,管理專案中的資料品質掃描。
您也可以在處理特定資料表時,建立及管理資料品質掃描作業。在 Google Cloud 控制台的資料表 BigQuery 頁面中,使用「資料品質」分頁標籤。請執行下列步驟:
前往 Google Cloud 控制台的「BigQuery」頁面。
在「Explorer」窗格中選取資料表。
按一下「資料品質」分頁標籤。
視資料表是否已執行資料品質掃描,並將結果發布為 Dataplex Universal Catalog 中繼資料而定,您可以透過下列方式使用資料表的資料品質掃描:
已發布資料品質掃描結果:頁面會顯示最新的掃描結果。
如要管理這個資料表的資料品質掃描,請按一下「資料品質掃描」,然後選取下列選項:
建立新的掃描作業:建立新的資料品質掃描作業。詳情請參閱本文的「建立資料品質掃描作業」一節。從資料表的詳細資料頁面建立掃描時,系統會預先選取該資料表。
「立即執行」:執行掃描。
編輯掃描設定:編輯設定,包括顯示名稱、篩選條件和時間表。
如要編輯資料品質規則,請在「資料品質」分頁中,按一下「規則」分頁。按一下「修改規則」。更新規則,然後按一下「儲存」。
管理掃描作業權限:控管哪些人可以存取掃描結果。 詳情請參閱本文的「授予資料品質掃描結果的存取權」一節。
查看歷來結果:查看先前資料品質掃描工作的詳細資訊。詳情請參閱本文件的「查看資料品質掃描結果」和「查看歷來掃描結果」部分。
查看所有掃描作業:查看適用於這個表格的資料品質掃描作業清單。
未發布資料品質掃描結果:從下列選項中選取:
建立資料品質掃描作業:建立新的資料品質掃描作業。詳情請參閱本文的「建立資料品質掃描作業」一節。從資料表的詳細資料頁面建立掃描時,系統會預先選取該資料表。
查看現有掃描作業:查看適用於這個資料表的資料品質掃描作業清單。
查看資料表的資料品質掃描作業
如要查看適用於特定資料表的資料品質掃描作業,請按照下列步驟操作:
在 Google Cloud 控制台的 BigQuery「Metadata curation」(中繼資料管理) 頁面,前往「Data profiling & quality」(資料剖析與品質) 分頁。
依資料表名稱和掃描類型篩選清單。
更新資料品質掃描作業
您可以編輯現有資料品質掃描作業的各種設定,例如顯示名稱、篩選器、時間表和資料品質規則。
控制台
在 Google Cloud 控制台的 BigQuery「中繼資料管理」頁面,前往「資料剖析與品質」分頁。
按一下資料品質掃描作業的名稱。
如要編輯顯示名稱、篩選器和時間表等設定,請按一下「編輯」。編輯值,然後按一下「儲存」。
如要編輯資料品質規則,請在掃描詳細資料頁面中,按一下「目前的規則」分頁標籤。按一下「修改規則」。更新規則,然後按一下「儲存」。
gcloud
如要更新資料品質掃描的說明,請使用 gcloud dataplex datascans update data-quality
指令:
gcloud dataplex datascans update data-quality DATASCAN \ --location=LOCATION \ --description=DESCRIPTION
更改下列內容:
DATASCAN
:要更新的資料品質掃描名稱。LOCATION
:建立資料品質掃描的 Google Cloud 區域。DESCRIPTION
:資料品質掃描的新說明。
REST
如要編輯資料品質掃描作業,請使用 dataScans.patch
方法。
刪除資料品質掃描作業
控制台
在 Google Cloud 控制台的 BigQuery「中繼資料管理」頁面,前往「資料剖析與品質」分頁。
按一下要刪除的掃描結果。
按一下「刪除」,然後在系統提示時確認刪除。
gcloud
如要刪除資料品質掃描作業,請使用 gcloud dataplex datascans delete
指令:
gcloud dataplex datascans delete DATASCAN \ --location=LOCATION \ --async
請替換下列變數:
DATASCAN
:要刪除的資料品質掃描名稱。LOCATION
:建立資料品質掃描的 Google Cloud 區域。
REST
如要刪除資料品質掃描作業,請使用 dataScans.delete
方法。
後續步驟
- 進一步瞭解 BigQuery 中的資料管理機制。