arrow_back

Datastream:從 PostgreSQL 複製資料到 BigQuery

登录 加入
欢迎加入我们的社区,一起测试和分享您的知识!
done
学习 700 多个动手实验和课程并获得相关技能徽章

Datastream:從 PostgreSQL 複製資料到 BigQuery

实验 1 小时 universal_currency_alt 1 积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
欢迎加入我们的社区,一起测试和分享您的知识!
done
学习 700 多个动手实验和课程并获得相关技能徽章

GSP1052

Google Cloud 自修研究室標誌

總覽

在現今競爭激烈的環境中,組織需要能快速且輕鬆根據即時資料做出決策。BigQuery 適用的 Datastream 可以從 AlloyDB、MySQL、PostgreSQL 和 Oracle 等作業資料庫來源,將資料順暢複製到 Google Cloud 的無伺服器 data warehouse:BigQuery。Datastream 具備無伺服器且可自動調度資源的架構,讓您能輕鬆設定 ELT (擷取、載入和轉換) pipeline,進行低延遲的資料複製,以展開即時深入分析。

在本實作實驗室中,您將部署 PostgreSQL 適用的 Cloud SQL 資料庫,並用 gcloud 指令列匯入範例資料集。在使用者介面,您會建立並開始 Datastream 串流,將資料複製到 BigQuery。

雖然您可以輕鬆從實驗室複製指令並貼到對應的位置,但為了強化您對核心概念的理解,我們建議自行輸入指令

學習內容

  • 用 Google Cloud 控制台準備 PostgreSQL 適用的 Cloud SQL 執行個體
  • 將資料匯入 Cloud SQL 執行個體
  • 為 PostgreSQL 資料庫建立 Datastream 連線設定檔
  • 為 BigQuery 目的地建立 Datastream 連線設定檔
  • 建立 Datastream 串流並開始複製
  • 驗證現有的資料和變更內容是否正確複製到 BigQuery

事前準備

  • 熟悉標準 Linux 環境
  • 熟悉變更資料擷取 (CDC) 的概念

設定和需求

點選「Start Lab」按鈕前的須知事項

請詳閱以下操作說明。研究室活動會計時,而且中途無法暫停。點選「Start Lab」 後就會開始計時,讓您瞭解有多少時間可以使用 Google Cloud 資源。

您將在真正的雲端環境中完成實作研究室活動,而不是在模擬或示範環境。為達此目的,我們會提供新的暫時憑證,讓您用來在研究室活動期間登入及存取 Google Cloud。

如要完成這個研究室活動,請先確認:

  • 您可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意:請使用無痕模式或私密瀏覽視窗執行此研究室。這可以防止個人帳戶和學生帳戶之間的衝突,避免個人帳戶產生額外費用。
  • 是時候完成研究室活動了!別忘了,活動一開始將無法暫停。
注意:如果您擁有個人 Google Cloud 帳戶或專案,請勿用於本研究室,以免產生額外費用。

如何開始研究室及登入 Google Cloud 控制台

  1. 按一下「Start Lab」(開始研究室) 按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側的「Lab Details」窗格會顯示下列項目:

    • 「Open Google Cloud console」按鈕
    • 剩餘時間
    • 必須在這個研究室中使用的暫時憑證
    • 完成這個實驗室所需的其他資訊 (如有)
  2. 點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,然後選取「在無痕式視窗中開啟連結」

    接著,實驗室會啟動相關資源並開啟另一個分頁,當中顯示「登入」頁面。

    提示:您可以在不同的視窗中並排開啟分頁。

    注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」
  3. 如有必要,請將下方的 Username 貼到「登入」對話方塊。

    {{{user_0.username | "Username"}}}

    您也可以在「Lab Details」窗格找到 Username

  4. 點選「下一步」

  5. 複製下方的 Password,並貼到「歡迎使用」對話方塊。

    {{{user_0.password | "Password"}}}

    您也可以在「Lab Details」窗格找到 Password

  6. 點選「下一步」

    重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
  7. 按過後續的所有頁面:

    • 接受條款及細則。
    • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
    • 請勿申請免費試用。

Google Cloud 控制台稍後會在這個分頁開啟。

注意:如要查看列出 Google Cloud 產品和服務的選單,請點選左上角的「導覽選單」「導覽選單」圖示

啟動 Cloud Shell

Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。

  1. 點按 Google Cloud 控制台上方的「啟用 Cloud Shell」圖示 「啟動 Cloud Shell」圖示

連線完成即代表已通過驗證,且專案已設為您的 PROJECT_ID。輸出內容中有一行宣告本工作階段 PROJECT_ID 的文字:

您在本工作階段中的 Cloud Platform 專案會設為「YOUR_PROJECT_ID」

gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。

  1. (選用) 您可以執行下列指令來列出使用中的帳戶:
gcloud auth list
  1. 點按「授權」

  2. 輸出畫面應如下所示:

輸出內容:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (選用) 您可以使用下列指令來列出專案 ID:
gcloud config list project

輸出內容:

[core] project = <project_ID>

輸出內容範例:

[core] project = qwiklabs-gcp-44776a13dea667a6 附註:如需有關 gcloud 的完整說明,請前往 Google Cloud 並參閱「gcloud CLI overview guide」(gcloud CLI 總覽指南)。

工作 1:建立複製用的資料庫

在這個部分,您會準備 PostgreSQL 適用的 Cloud SQL 資料庫來進行 Datastream 複製工作。

建立 Cloud SQL 資料庫

  1. 執行下列指令來啟用 Cloud SQL API:
gcloud services enable sqladmin.googleapis.com
  1. 執行下列指令,建立 PostgreSQL 適用的 Cloud SQL 資料庫執行個體:
POSTGRES_INSTANCE=postgres-db DATASTREAM_IPS={{{project_0.startup_script.ip_Address | IP_ADDRESS}}} gcloud sql instances create ${POSTGRES_INSTANCE} \ --database-version=POSTGRES_14 \ --cpu=2 --memory=10GB \ --authorized-networks=${DATASTREAM_IPS} \ --region={{{project_0.default_region|REGION}}} \ --root-password pwd \ --database-flags=cloudsql.logical_decoding=on 注意:此指令會在 建立資料庫。若您位於其他區域,請務必將 DATASTREAM_IPS 換成對應的 Datastream 公開 IP

建立好資料庫執行個體後,請記下該執行個體的公開 IP,之後建立 Datastream 的連線設定檔時會用到。

點選「Check my progress」確認目標已達成。

建立複製用的資料庫

將範例資料填入資料庫

在 Cloud Shell 執行下列指令,連線至 PostgreSQL 資料庫。

gcloud sql connect postgres-db --user=postgres

系統提示您輸入密碼時,請輸入 pwd

連上資料庫後,執行下列 SQL 指令來建立範例結構定義與資料表:

CREATE SCHEMA IF NOT EXISTS test; CREATE TABLE IF NOT EXISTS test.example_table ( id SERIAL PRIMARY KEY, text_col VARCHAR(50), int_col INT, date_col TIMESTAMP ); ALTER TABLE test.example_table REPLICA IDENTITY DEFAULT; INSERT INTO test.example_table (text_col, int_col, date_col) VALUES ('hello', 0, '2020-01-01 00:00:00'), ('goodbye', 1, NULL), ('name', -987, NOW()), ('other', 2786, '2021-01-01 00:00:00');

設定資料庫以準備複製

  • 執行下列 SQL 指令,建立發布作業和複製運算單元:
CREATE PUBLICATION test_publication FOR ALL TABLES; ALTER USER POSTGRES WITH REPLICATION; SELECT PG_CREATE_LOGICAL_REPLICATION_SLOT('test_replication', 'pgoutput');

工作 2:建立 Datastream 資源並開始複製

準備好資料庫後,建立 Datastream 連線設定檔與串流來開始複製。

  1. 從「導覽選單」點選「查看所有產品」,然後在「數據分析」底下選取「Datastream」

  2. 點選「啟用」來啟用 Datastream API。

64c95a330abbceb6.png

建立連線設定檔

請分別為 PostgreSQL 來源與 BigQuery 目的地建立連線設定檔。

PostgreSQL 連線設定檔

  1. 在 Cloud 控制台,前往「連線設定檔」分頁並點選「建立設定檔」
「連線設定檔」頁面,「建立設定檔」連結在右上角
  1. 選取「PostgreSQL」連線設定檔類型。
PostgreSQL 顯示為其中一個圖塊選項
  1. 連線設定檔的名稱與 ID 請使用 postgres-cp

  2. 輸入資料庫連線詳細資料:

  • 區域:
  • 先前建立的 Cloud SQL 執行個體的 IP 與通訊埠
  • 使用者名稱:postgres
  • 密碼:pwd
  • 資料庫:postgres
  1. 點選「繼續」

  2. 「加密」部分保留預設值「無」,並點選「繼續」

  3. 選取「IP 許可清單」連線方式,並點選「繼續」

  4. 點選「執行測試」,確保 Datastream 可以連上資料庫。

  5. 點選「建立」

BigQuery 連線設定檔

  1. 在 Cloud 控制台,前往「連線設定檔」分頁並點選「建立設定檔」
「連線設定檔」頁面,「建立設定檔」連結在右上角
  1. 選取「BigQuery」連線設定檔類型。
BigQuery 顯示為其中一個圖塊選項
  1. 連線設定檔的名稱與 ID 請使用 bigquery-cp

  2. 區域請選取「」。

  3. 點選「建立」

建立串流

建立串流,連結前面建立的連線設定檔並進行設定,將資料從來源串流至目的地。

  • 前往 Cloud 控制台的「串流」分頁,並點選「建立串流」
「串流」頁面,「建立串流」連結在右上角

定義串流詳細資料

  1. 串流的名稱與 ID 請使用 test-stream
  2. 區域請選取「」。
  3. 來源類型請選取「PostgreSQL」。
  4. 目的地類型請選取「BigQuery」。
  5. 點選「繼續」
「建立串流」頁面的第 1 步,當中的詳細資料已填妥

定義來源

  1. 選取上一步建立的「postgres-cp」連線設定檔。
  2. (選用) 點選「執行測試」來測試連線能力。
  3. 點選「繼續」
「建立串流」頁面的第 2 步,當中的欄位已填妥

設定來源

  1. 複製運算單元名稱請指定「test_replication」。
  2. 發布作業名稱請指定「test_publication」。
「建立串流」頁面的第 3 步,當中的欄位已填妥
  1. 選取「test」結構定義進行複製。
從數個選項中選取「test」結構定義
  1. 點選「繼續」

定義目的地

  • 選取上一步建立的「bigquery-cp」連線設定檔,然後點選「繼續」
「建立串流」頁面的第 4 步,當中已選取「bigquery-cp」

設定目的地

  1. 選擇「區域」並選取 做為 BigQuery 資料集的位置。
  2. 過時程度限制請設為「0 秒」
「建立串流」頁面的第 5 步,當中已選取位置
  1. 點選「繼續」

檢查並建立串流

  • 最後點選「執行驗證」,驗證串流詳細資料。成功完成驗證後,請點選「建立並啟動」
有綠色打勾符號的驗證結果

等待約 1 至 2 分鐘,直到串流狀態顯示為執行中。

點選「Check my progress」確認目標已達成。

建立 Datastream 來源

工作 3:在 BigQuery 查看資料

現在串流正在執行,請查看將資料複製到 BigQuery 的工作。

  1. 從 Google Cloud 控制台的「導覽選單」前往「BigQuery」
  2. 在 BigQuery Studio Explorer 展開專案節點,查看資料集清單。
  3. 展開「test」資料集節點。
  4. 點選「example_table」資料表。
  5. 點選「預覽」分頁標籤,在 BigQuery 查看資料。
注意:資料會在幾分鐘內出現在「預覽」部分。顯示「example_table」的 BigQuery「Explorer」頁面

工作 4:檢查來源的變更內容是否複製到 BigQuery

  1. 在 Cloud Shell 執行下列指令,連線至 Cloud SQL 資料庫 (密碼為 pwd):
gcloud sql connect postgres-db --user=postgres
  1. 執行下列 SQL 指令來變更資料:
INSERT INTO test.example_table (text_col, int_col, date_col) VALUES ('abc', 0, '2022-10-01 00:00:00'), ('def', 1, NULL), ('ghi', -987, NOW()); UPDATE test.example_table SET int_col=int_col*2; DELETE FROM test.example_table WHERE text_col = 'abc';
  1. 開啟 BigQuery SQL 工作區並執行下列查詢,在 BigQuery 查看變更內容:
SELECT * FROM test.example_table ORDER BY id; 查詢結果

恭喜!

Datastream 對於資料整合與分析來說是個不可或缺的工具!您已學會基礎概念,瞭解如何用 Datastream 將資料從 PostgreSQL 複製到 BigQuery。

使用手冊上次更新日期:2023 年 8 月 23 日

實驗室上次測試日期:2023 年 8 月 23 日

Copyright 2024 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您