BigQuery のデータ準備機能を触ってみた(Preview)

BigQuery のデータ準備機能を触ってみた(Preview)

Clock Icon2025.01.30

こんにちは!エノカワです。

BigQuery で データを準備する機能プレビュー になりました。

BigQuery provides context-aware transformation recommendations from Gemini for cleansing data for analysis. Data preparation is available in Preview.

以前からプレビューされていた機能ですが、試してみたことはありませんでした。
今回は、この機能を実際に触ってみましたので、その内容をご紹介します。

データ準備(Data preparation)とは?

BigQuery の AI を活用したデータ準備機能です。

Gemini を使用してデータとスキーマを分析し、データのクリーニング、変換、拡充のためのインテリジェントな提案を提供します。
これにより、手動によるデータ準備タスクに費やす時間と労力を大幅に削減できます。

データ準備機能によって生成された SQL は、Dataform データ エンジニアリング パイプラインの一部となります。

使用するテーブル

データ準備を行うテーブルを用意します。

今回は、タスク管理データを取り込んだテーブル(task_management_raw)を使用しました。

bigquery-data-preparation-trial_1.png

bigquery-data-preparation-trial_2.png

タスク管理データ
タスクID タスク名 期日 ステータス 担当者 優先度 自由記述 完了日
1 企画書作成 2025/1/20 未着手 田中 今週中に企画書のたたき台を作成する。
2 顧客への提案資料作成 2025/01/25 進行中 佐藤 先週のヒアリング内容を元に、提案資料を作成する。
3 契約書確認 2025/01/31 完了 鈴木 法務部との契約書確認が完了。 2025-02-05
4 請求書発行 2025/2/5 進行中 たなか 顧客Aへの請求書を発行する。
5 会議資料準備 2025/02/10 佐藤 次回の会議資料を準備する。
6 顧客からの問い合わせ対応 2025/02/15 完了 鈴木 顧客Bからの問い合わせに対応完了。 2025-02-16
7 新規顧客リスト作成 2025/2/20 未着手 たなか 新規顧客リストを作成し、営業部に共有する。
8 営業戦略会議 2025/02/25 進行中 佐藤 来期の営業戦略について会議を行う。
9 研修資料作成 2025/02/28 完了 鈴木 新入社員向けの研修資料を作成した。 2025-03-01
10 システムテスト 2025/3/5 進行中 田中 システムのテストを行う。
11 顧客訪問 2025/03/10 佐藤 顧客Cを訪問し、提案内容を説明する。
12 報告書作成 2025/03/15 完了 鈴木 今月の営業活動に関する報告書を作成した。 2025-03-18
13 新規サービス企画 2025/3/20 たなか 新規サービスの企画を立案する。
14 契約内容確認 2025/03/25 進行中 佐藤 契約内容に不備がないか確認する。
15 請求書送付 2025/03/31 完了 鈴木 顧客Dに請求書を送付した。 2025-03-30
16 営業部会議資料作成 2025/1/18 完了 田中 営業部会議で使用する資料を作成する。 2025-01-19
17 新規顧客へのアプローチ 2025/01/22 進行中 佐藤 新規顧客へのアプローチを行う。
18 契約締結 2025/01/28 完了 鈴木 顧客Eとの契約を締結した。 2025-01-30
19 請求書発行 2025/2/3 進行中 たなか 顧客Fへの請求書を発行する。
20 顧客からの質問対応 2025/02/08 佐藤 顧客Gからの質問に対応する。
21 研修資料レビュー 2025/02/13 完了 鈴木 研修資料のレビューを行った。 2025-02-16
22 新規サービス説明会準備 2025/2/18 進行中 たなか 新規サービスの説明会を準備する。
23 営業戦略資料作成 2025/02/23 未着手 佐藤 営業戦略に関する資料を作成する。
24 顧客アンケート実施 2025/02/27 完了 鈴木 顧客アンケートを実施した。 2025-02-28
25 システム保守作業 2025/3/3 進行中 田中 システムの保守作業を行う。
26 顧客への提案書作成 2025/03/08 佐藤 顧客Hへの提案書を作成する。
27 契約更新手続き 2025/03/13 完了 鈴木 顧客Iとの契約更新手続きを行った。 2025-03-15
28 請求書発行 2025/3/18 進行中 田中 顧客Jへの請求書を発行する。
29 顧客からの要望ヒアリング 2025/03/23 未着手 佐藤 顧客Kからの要望をヒアリングする。
30 報告書レビュー 2025/03/28 完了 鈴木 報告書のレビューを行った。 2025-03-29

データ準備手順を作成する

テーブルが用意できたので、データ準備手順を作成してきましょう。

task_management_rawテーブルの [クエリ] から [データの準備] を選択します。

bigquery-data-preparation-trial_3.png

データ準備エディタのタブが開き、テーブルの代表的なサンプルを含むデータビューが表示されました。
データビューでは、データ準備手順を作成することができます。

bigquery-data-preparation-trial_4.png

Gemini による提案

右側に [Gemini による提案] が表示されていますね。
Gemini が、コンテキストに応じた候補を提案し、データ準備タスクを支援してくれます。

型の変換:Gemini の候補を適用

due_dateカラムに対して、Gemini から以下の提案がありました。

Converts column due_date from type string to date with the following format(s): '%Y/%m/%d'

COALESCE(SAFE.PARSE_DATE('%Y/%m/%d', due_date))

due_dateカラムはSTRING型で日付のフォーマットがバラバラです。
DATE型への変換を提案されているので適用しましょう。

[プレビュー] で適用後のデータを確認することができます。

bigquery-data-preparation-trial_5.png

変換後のデータに問題なさそうです。

bigquery-data-preparation-trial_6.png

[適用] することで、ステップが追加されました。

bigquery-data-preparation-trial_7.png

提案されたステップ(1) から (2) になっています。
1番目のステップはtask_management_rawテーブルデータのロードです。
2番目のステップとして、DATE型への変換が追加された形です。

NULL値の置き換え:手動でステップ追加

カラムを選択して、提案を絞り込むことができます。
statusカラムを選択してみましょう。

statusカラムは、未着手進行中完了のいずれかの値を取るべきですが、空白(NULL値)となっているレコードがあります。

NULL値は未着手に置き換えたいのですが、Gemini からの提案には含まれていません。

bigquery-data-preparation-trial_8.png

このような場合は、手動でステップを追加することができます。

[ステップを追加] から [変換] を選択します。

bigquery-data-preparation-trial_9.png

提案のプレビューの説明欄に以下を入力して実行します。

null を '未着手に変換'

bigquery-data-preparation-trial_10.png

すると、Gemini がSQLを提案してくれました!

This expression replaces null values in the status column with '未着手'.

IFNULL(status, r'未着手')

bigquery-data-preparation-trial_11.png

[プレビュー] して、想定したデータになっているか確認します。

bigquery-data-preparation-trial_12.png

問題なさそうなので、[適用] してステップを追加します。

bigquery-data-preparation-trial_13.png

表記揺れの修正:例を使用して候補を改善

使っていて「面白いな」と思う機能がありました。

assigneeカラムを選択します。

田中たなかは同一人物ですが、表記が統一されていません。
田中に統一したいのですが、Gemini からの提案には含まれていません。

bigquery-data-preparation-trial_14.png

このような場合は、セルの値を手動で編集します。
たなか田中に変更してみましょう。

bigquery-data-preparation-trial_15.png

すると、Gemini がSQLを提案してくれました!

Standardize assignee names by replacing '田中' with '田中'.

CASE
WHEN assignee = 'たなか' THEN '田中'
ELSE assignee
END

編集内容をもとに Gemini がこちらの要望を察してくれたようです。

[プレビュー] して、想定したデータになっているか確認します。

bigquery-data-preparation-trial_16.png

問題なさそうなので、[適用] してステップを追加します。

bigquery-data-preparation-trial_17.png

テーブル作成

変換ステップを追加以降、データビュー右上に以下の警告メッセージが表示されていました。

Data preparation has node(s) without a destination and not referred by any other nodes

これは、データ準備のステップに送信先(宛先テーブル)が無いために表示されています。

bigquery-data-preparation-trial_18.png

最後のステップとして、宛先テーブルを追加しましょう。
これにより、データ準備の出力をテーブルに書き込むことができます。

[ステップを追加] から [送信先] を選択します。

bigquery-data-preparation-trial_19.png

宛先テーブルの情報を入力して、[保存] するとステップが追加されます。

bigquery-data-preparation-trial_20.png

ステップリスト

[適用されたステップ] をクリックすると、ステップリストが表示されます。
ステップリストでは、ステップの編集や削除ができます。

bigquery-data-preparation-trial_21.png

グラフビュー

データビュー左上の [Graph] をクリックすると、グラフビューが表示されます。
グラフビューでは、データ準備の概要を視覚的に確認できます。

bigquery-data-preparation-trial_22.png

データ準備を実行する

それでは、データ準備を実行してみましょう!

まず、実行するための構成を行います。
構成前は、[実行] が無効化されていますので、[構成] をクリックします。

bigquery-data-preparation-trial_23.png

構成画面では、データ準備を実行するサービスアカウントを選択して [保存] します。

bigquery-data-preparation-trial_24.png

[実行] が有効化されたので、クリックします。
作成したデータ準備手順のクエリジョブがバックグラウンドで実行されます。

bigquery-data-preparation-trial_25.png

実行が完了し、task_managementテーブルが作成されました。

bigquery-data-preparation-trial_26.png

ちなみに、データ準備手順は自動で保存されるようです。
エクスプローラの [データの準備]task_management_raw のデータの準備という名前で保存されていることが確認できます。

bigquery-data-preparation-trial_27.png

まとめ

以上、BigQuery のデータ準備機能を触ってみました。

実際に使ってみて、以下の点が便利だと感じました。

  • BigQuery コンソール上でデータを確認しながらデータ準備を行うことができる
  • Gemini の支援を受けながら、データ変換のSQLを自動生成できる
  • GUI操作で、直感的にデータ準備のステップを追加できる

今回は、データの型変換、NULL値の置換、表記揺れの修正といった変換処理のみを試しましたが、他にも以下のようなステップを追加することができます。

  • カラムの追加: 新しいカラムを作成し、既存カラムの変換結果を格納する
  • フィルタ: 特定の条件に合致するデータのみを抽出する
  • 結合: 複数のテーブルを結合して、データを統合する

また、作成したデータ準備手順はスケジュール実行することも可能です。
例えば、毎日決まった時間にデータを変換して、最新のデータで分析を行うといったことも実現できます。

これらの機能も機会があれば、触ってみようと思います。

今回ご紹介したデータ準備機能、ぜひ皆様の業務でも活用してみてはいかがでしょうか?

参考

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.