透過 BigQuery 和 Looker 分析 Bigtable 中的信用卡交易資料,並以圖表呈現

1. 總覽

本程式碼研究室會逐步引導您分析一連串寫入 Bigtable 的信用卡交易資料。您將瞭解如何使用 Bigtable 變更串流至 BigQuery 範本,以便即時匯出資料。接著,您將瞭解如何查詢變更串流記錄,以及如何重新格式化資料,以便使用 Looker 建立資訊主頁。

本程式碼研究室的適用對象為熟悉 Bigtable、使用指令列工具和事件串流服務的技術使用者。

426dc59200875a20.png

本程式碼研究室會說明如何執行下列操作:

  • 建立已啟用變更串流的 Bigtable 資料表。
  • 建立 BigQuery 資料集。
  • 部署 Dataflow 範本「Bigtable change streams to BigQuery.
  • 在 BigQuery 中查詢事件串流。
  • 使用 Looker 以視覺化的方式呈現事件串流。

下圖顯示您要部署的系統架構。

336e940307d0e0a.png

2. 專案設定

  1. 在 Google Cloud 控制台的專案選取器頁面中,選取或建立 Google Cloud 專案

eb5309715175de69.png

  1. 請確認 Google Cloud 專案已啟用計費功能
  2. 請造訪這個預先填入的 API 啟用頁面,為 Dataflow、Bigtable、BigQuery、Looker 和 Cloud Storage 啟用必要的 API。

3. 建立 BigQuery 資料集

在本程式碼研究室中,您稍後會使用 BigQuery 分析資料。請按照下列操作說明,為資料管道的輸出內容建立資料集。

  1. 前往 Google Cloud 控制台的「BigQuery」頁面。
  2. 在「Explorer」窗格中找到專案名稱,然後點選「溢出選單」 (專案 ID 旁的三點圖示)。
  3. 點選「建立資料集」

122bc1a411b8dc63.png

  1. 在「建立資料集」窗格中,執行下列操作:
  • 在「Dataset ID」(資料集 ID) 中輸入 bigtable_bigquery_tutorial
  • 保留其他預設設定。
  • 點選「建立資料集」

4. 建立已啟用變更串流的 Bigtable 資料表

Bigtable 是低延遲、可水平擴充的 NoSQL 資料庫服務,常見用途之一是提供財務資料。您將在這裡建立可儲存信用卡交易的資料表。Bigtable 可處理全球交易的高處理量寫入作業,甚至還能用於即時詐欺偵測

  1. 在 Google Cloud 控制台中,前往「Bigtable Instance」(Bigtable 執行個體) 頁面。
  2. 按一下您在本教學課程中使用的執行個體 ID。如果您沒有可用的執行個體,請在附近的地區建立執行個體,並為其命名。其他設定則可使用預設設定。

a2e8de7b66dc42e.png

  1. 在左側導覽窗格中,按一下「Tables」
  2. 點選「建立資料表」。

9c267c00f93747c4.png

  • 將資料表命名為 retail-database
  • 新增名為 transactions 的資料欄系列。
  • 選取「啟用變更串流」
  • 請保留垃圾收集政策和保留期限的預設值。
  • 按一下「建立」

696cd1399c354816.png

5. 初始化資料管道,以便擷取變更串流

Bigtable 的效能最適合用於點讀取和列範圍掃描,但整個資料表的分析作業可能會對服務容量和 CPU 資源造成負擔。BigQuery 非常適合用於資料表層級的分析,因此您在這裡要使用的解決方案是雙寫。也就是說,您會將資料寫入 Bigtable 和 BigQuery,這是常見的做法。您將使用 Bigtable change streams to BigQuery Dataflow 範本,因此不需要額外編寫程式碼:當資料寫入 Bigtable 時,管道會在 BigQuery 中寫入變更記錄。資料載入 BigQuery 後,您就可以對整個資料集執行最佳化查詢,且不會影響 Bigtable 中提供資料的效能。

f4cd9d8faf10ce77.png

  1. 在 Bigtable「Tables」頁面中找出資料表 retail-database
  2. 在「變更串流」欄中,按一下「連結」
  3. 在「Connect with Dataflow」對話方塊中,選取「BigQuery」
  4. 按一下「建立 Dataflow 工作」
  5. 在提供的參數欄位中輸入參數值。您不需要提供任何選用參數。
  • 將 Cloud Bigtable 應用程式設定檔 ID 設為 default
  • 將 BigQuery 資料集設為 bigtable_bigquery_tutorial
  1. 按一下「Run Job」(執行工作)
  2. 請等到工作狀態顯示為「Starting」或「Running」,再繼續操作。工作排入佇列後,可能需要五分鐘的時間。頁面會自動更新。這個範本會建立串流工作,以便持續處理寫入 Bigtable 的新資料,直到手動停止工作為止。

a04908b37c6fe96b.png

6. 將部分資料寫入 Bigtable

接下來,您將將一年的信用卡交易寫入 Bigtable 資料表。這個範例資料集包含信用卡號碼、商家名稱、ID 和金額等資訊。在實際的信用卡處理應用程式中,這類資料會在每次交易發生時,即時串流至資料庫。

  1. 按一下雲端主控台右上角的按鈕,即可開啟 Cloud Shell。

f6395329b04ecb64.png

  1. 如果出現系統提示,請接受提示並授權 Cloud Shell。
  2. 下載資料集。
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
  1. 在指令列中設定環境變數
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
  1. 使用 cbt CLI 將多筆信用卡交易寫入 retail-database 資料表。
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2023.csv  column-family=transactions

輸出內容會顯示

Done importing 10000 rows.

7. 在 BigQuery 中查看變更記錄檔

  1. 前往 Google Cloud 控制台的 BigQuery 頁面
  2. 在「Explorer」窗格中,展開專案和資料集 bigtable_bigquery_tutorial
  3. 按一下資料表 retail-database_changelog。如果沒有資料表,您可能需要重新整理資料集。
  4. 如要查看變更記錄,請按一下「預覽」

aa97ff01f944832.png

嘗試查詢一些字詞

您現在可以對這個資料集執行幾項查詢,取得一些洞察資料。這裡提供 SQL 查詢,但您可以參閱「在 BigQuery 中查詢 Bigtable 變更記錄」說明文件,進一步瞭解如何寫入變更記錄資料查詢。

查詢一筆交易

使用下列查詢,查詢特定交易的資料。

SELECT *
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE row_key="3034-442694-3052#2023-03-03T14:50:46.824Z"

在 BigQuery 中,您會發現每個寫入的資料欄都已轉換成個別的資料列。

找出各類別的購買次數

使用以下查詢,計算每個類別的購買次數。

SELECT value as category, count(*) as `number of sales`
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE column="category"
GROUP BY category

重新格式化資料

如要將每筆交易重建為單一 BigQuery 資料表列,您必須將資料轉置,並將結果儲存至新表格。這是更易於管理的查詢格式。

CREATE VIEW bigtable_bigquery_tutorial.retail_transactions_view AS (
    SELECT *, parse_numeric(amount) as sales_dollars FROM (
      SELECT row_key, timestamp, column, value
      FROM `bigtable_bigquery_tutorial.retail-database_changelog`
      )
      PIVOT (
      MAX(value)
      FOR column in ("merchant", "amount", "category", "transaction_date")
    )
)

建立 Looker 資訊主頁

  1. 按一下「Go to view」(前往檢視表),前往新檢視表的詳細資料頁面。
  2. 按一下 [匯出]
  3. 選取「透過 Looker Studio 探索」

bb45482e9101b0f.png

8. 將圖表新增至資訊主頁

您現在可以將資訊製成圖表,方便消化並分享報表。您將在資訊主頁中新增三張圖表:

  • 交易金額隨時間變化
  • 每個商家的總交易
  • 各類別的交易百分比

426dc59200875a20.png

設定頁面

  1. 按一下每個現有圖表,然後按下刪除鍵即可移除。
  2. 選取頁面右側的「屬性」,即可修改圖表資料。

新增圖表

交易金額隨時間變化

  1. 按一下「新增圖表」,然後建立時序圖。
  2. 將「維度」設為 transaction_date
  1. 將「指標」設為 sales_dollars

372bdf2a2bcdb817.png

每個商家的總交易

  1. 按一下「新增圖表」,然後建立表格。
  2. 將「維度」設為 merchant
  3. 將「指標」設為 sales_dollars

各類別的交易百分比

  1. 按一下「新增圖表」,然後建立圓餅圖。
  2. 將「維度」設為 category
  3. 將「指標」設為 sales_dollars

查看即時變更

請花點時間研究圖表中的數值。您可以按一下表格中的特定商家或特定類別,所有圖表都會根據這些特定值進行篩選,讓您獲得更多洞察資料。接著,您可以寫入更多資料,並查看這張圖表如何即時更新。

  1. 返回 Cloud Shell。
  2. 下載並寫入第二個資料集。
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2024-jan.csv .

cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2024-jan.csv  column-family=transactions
  1. 返回 Looker 資訊主頁,然後使用 Ctrl+Shift+E 指令重新整理資料,或點選「view」選單中的「Refresh data」。圖表中現在應該會顯示 2024 年 1 月的資料。

除了上述圖表和指標,您還可以建立許多其他圖表和指標。詳情請參閱 Looker 說明文件

9. 清理

如要避免系統向您的 Google Cloud 帳戶收取本教學課程所用資源的費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。

停止變更串流管道

  1. 前往 Google Cloud 控制台的 Dataflow「Jobs」(工作) 頁面
  2. 從工作清單中選取串流工作。
  3. 在導覽選單中,按一下「停止」
  4. 在「Stop job」對話方塊中,選取「Cancel」,然後按一下「Stop job」

刪除 Bigtable 資源

如果您為本教學課程建立了 Bigtable 執行個體,可以刪除該執行個體,也可以清除您建立的資料表。

  1. 前往 Google Cloud 控制台的「Bigtable 執行個體」頁面。
  2. 按一下您在本教學課程中使用的執行個體 ID。
  3. 在左側導覽窗格中,按一下「Tables」
  4. 找出 retail-database 資料表。
  5. 按一下 [編輯]
  6. 清除「Enable change stream」
  7. 按一下 [儲存]
  8. 開啟表格的溢位選單。
  9. 按一下「刪除」並輸入資料表名稱加以確認。
  10. 選用:如果您是為了本教學課程建立新的執行個體,請刪除該執行個體

刪除 BigQuery 資料集

  1. 前往 Google Cloud 控制台的「BigQuery」頁面。
  2. 在「Explorer」面板中找出資料集 bigtable_bigquery_tutorial,然後按一下該資料集。
  3. 按一下「刪除」,輸入刪除內容,然後按一下「刪除」確認。

後續步驟