タグ: IFNULL

  • 【Google認定MLエンジニア】BigQueryによるデータ前処理の基礎と実践

    【Google認定MLエンジニア】BigQueryによるデータ前処理の基礎と実践

    BigQuery MLの前処理(Data Preprocessing)では、専用機能に頼るのではなく、SQL標準機能を駆使してデータを整えることが求められます。試験でもこの方針に沿った知識が問われます。


    ■ 基本的な前処理タスク

    タスク 方法 補足
    データ結合 SQLのJOINでトランザクション・ユーザー・商品テーブルを結合 必要な情報をまとめる
    欠損値補完 IFNULL関数を用いてNULLを特定値(例:0や空文字)で埋める BigQuery MLにCLEAN関数は存在しない
    カテゴリ変換 CASE文を使ってカテゴリ変数を数値化・グルーピング 柔軟な条件分岐を実装
    テキスト正規化 REGEXP_REPLACE関数を使って不要な文字を除去・整形 メール、住所などのクレンジングに有効
    集約・移動平均 ウィンドウ関数(例:OVER(PARTITION BY))を使う 複雑な統計処理に対応

    ■ 最適化タスク(パフォーマンス向上)

    タスク 方法 補足
    大規模データ対応 PARTITION BY句でテーブルを分割管理 クエリ速度を大幅改善
    中間結果整理 WITH句で一時テーブル(Common Table Expression)を活用 サブクエリを見やすく保守性向上
    複雑クエリ整理 VIEW作成で複雑な処理をカプセル化 可読性・メンテナンス性向上

    ■ 実務上の注意点(試験にもよく出る)

    • 外部処理(EXTERNAL_QUERY)は禁止推奨
      ➔ BigQuery外に出すとパフォーマンスとコストが悪化する
    • ローカルEXPORTしてから前処理するのは非効率
      ➔ BigQuery内で完結する設計を心がける
    • JOIN時のインデックス過信は禁物
      ➔ インデックスではなく、パーティションやクラスター設計を優先

    ■ 押さえるべきポイント

    ✅ BigQuery MLに特別な「TRANSFORM」「CLEAN」「NORMALIZE」関数はない
    ✅ SQL標準機能(IFNULL、CASE、WITH、PARTITION BY、REGEXP_REPLACEなど)で前処理する
    ✅ 外部システム・ローカルダウンロードに依存しない
    ✅ パフォーマンスを意識して設計する(PARTITION・WITH句・VIEW化)


    ✏️ まとめ

    BigQuery MLの前処理とは、

    • SQLの力を最大限に活用して
    • BigQuery内部で完結し
    • クエリのパフォーマンスと保守性も両立させる

    こうした実装力を問われる領域です。