Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AppSheetを使ったデータ品質の改善

 AppSheetを使ったデータ品質の改善

2024年5月8日(水) GENBA #3 〜DREの現場〜 登壇資料

・イベントタイトル
GENBA #3 〜DREの現場〜
https://timeedev.connpass.com/event/315605/

Yui Nishiyama

May 22, 2024
Tweet

Other Decks in Programming

Transcript

  1. 自己紹介 西山 由倭 / Yui Nishiyama ⚫ データエンジニアリング部 DREチーム所属 ⚫ 2023/04 入社(元SIer)

    ⚫ 一昨年から乗馬を始めました 「猫吸い」ならぬ「馬吸い」してます
  2. タイミーの実績 スキマ バイト No.1 ※2024年2月時点 ※1 [調査方法]デスクリサーチ及びヒアリング調査 [調査期間]2021年2月8日~22日 [調査概要]スキマバイトアプリ サービスの実態調査 [調査対象]2020年12月までにサービスを開始しているスキマバイトアプリ10サービス

    [調査実施]株式会社ショッ パーズアイ ※2 [出典]AppStoreライフスタイルカテゴリーランキング(2021年5月時点) 3 累計求人案件数 ・ダウンロード数 ※1 ※2 導入事業者数 98,000企業 ワーカー数 700万人
  3. 4

  4. データ品質問題を発生させる一般的な原因 1. リーダーシップの欠如による問題 多くのデータ品質問題は高品質なデータに対する組織のコミットメントの欠如によって引き起こされる。 コミットメントの欠如、それはリーダーシップの欠如に由来する。 2. データ入力プロセスで発生する問題 入力インターフェースの設計が不十分であったり、 業務プロセスの変更や一貫性のない業務プロセスが実行されることで発生する。 3.

    データ処理機能の稼働中に発生する問題 データソース仕様の誤認識やソースシステム側のデータ構造の変更によって引き起こされる。 4. システム設計が原因で起きる問題 参照整合制制約、一意性制約の不備等がこれに当たる。 5. 問題の修復により発生する問題 業務の中断を招く不正データの流入、セキュリティの喪失などが発生すると手作業でデータパッチを適用することになる。 急造したスクリプトや手動コマンドは、予期せぬ結果がさらにエラーを発生させたり、必要以上にデータを変更したりするリスクが高い。 『データマネジメント知識体系ガイド』第13章より
  5. データ品質問題を発生させる一般的な原因 1. リーダーシップの欠如による問題 多くのデータ品質問題は高品質なデータに対する組織のコミットメントの欠如によって引き起こされる。 コミットメントの欠如、それはリーダーシップの欠如に由来する。 2. データ入力プロセスで発生する問題 入力インターフェースの設計が不十分であったり、 業務プロセスの変更や一貫性のない業務プロセスが実行されることで発生する。 3.

    データ処理機能の稼働中に発生する問題 データソース仕様の誤認識やソースシステム側のデータ構造の変更によって引き起こされる。 4. システム設計が原因で起きる問題 参照整合制制約、一意性制約の不備等がこれに当たる。 5. 問題の修復により発生する問題 業務の中断を招く不正データの流入、セキュリティの喪失などが発生すると手作業でデータパッチを適用することになる。 急造したスクリプトや手動コマンドは、予期せぬ結果がさらにエラーを発生させたり、必要以上にデータを変更したりするリスクが高い。 『データマネジメント知識体系ガイド』第13章より
  6. ツールの選定 • バリデーションチェックが柔軟に設定できる • BigQuery への連携が可能である • 導入コストが低い Google Workspace

    の全エディションで AppSheet Core (標準ライセンス) を利用できることもあり 試験的に AppSheet を導入
  7.   AppSheet とは Google が提供するノーコードツール • 既存のデータソースとの連携 ◦ スプレッドシート /

    Excel / BigQueryやMySQL等のDB / Salesforce etc. との連携が可能 • テンプレートによる効率的な開発 ◦ 10 種類以上の UI・UX が用意されており、それらをカスタマイズするだけでOK • データ入力以外の豊富な機能 ◦ 写真撮影・保存 ◦ 電子署名・フリーハンド入力 ◦ メール連携 ◦ GPS 情報連携・地図表示 etc.
  8. アプリの作成方法 ① 新規アプリを作成 ② データソースを追加 これだけで 入力フォーム や 一覧画面 といった 基本的な画面が 自動的

    に作られる あとは バリデーション や デザイン などの 細かな設定を調整すれば それだけで シンプルなデータ入力アプリ が完成!!
  9. BigQuery からのマスターデータの取得 • Read Only の設定が可能 • 他データソースとの紐付けが可能 • 取得したデータをプルダウンの中身に設定することが可能

    !!注意!! 様々なかたちでBigQueyのデータをアプリ上で使用することはできるが… 最大10万件までしか扱うことができない 複数テーブルから取得しているとあっという間に10万件を超えてしまって 実はデータが全件表示されていなかったなんてことも セキュリティーフィルターという機能を使ってユーザー毎に表示件数を絞る等の対策が必要
  10. 契約プラン による違い 契約プランによってできることが変わってくる 上位プランを契約していなくても一部機能が使えてしまったりするので注意 プラン Core(標準のライセンス) Enterprise データソースの種類 スプレッドシート Excel

    AppSheet(独自)データベース Cloud データベース (BQ/DynamoDB/MySQL…) SaaSプロバイダ(Salesforce) 他 監査ログの保持 7日間 180日間 +エクスポート可能 アプリのバージョン履歴 7日間 180日間 ※各種プランの詳細についてはこちら
  11. 導入した結果 Good • データ入力に起因するスキーマの 破壊的な変更 は防げるようになった • 表記揺れ がなくなった More

    • 大量データの登録 が不便になった ◦ 似たようなデータを数件~数十件一括登録するケースがあった ◦ データコピーやCSVインポートの機能はあるものの、スプレッドシートと比べると入力が煩雑 • 一部入力制御が不足し、入力ミス を完全には無くせなかった ◦ データ件数制限でマスターデータが扱いきれない ◦ 正規表現を使うような複雑なバリデーションが設定できない
  12. 蓋を開けたら機能していなかった入力制御 背景: タイミーを導入している企業に関する情報を管理 アプリケーションで発行されるIDなどを入力していたが 値を間違って入力してもユーザー自身が気づかない問題があった AppSheet で試した解決策: BigQuery からアプリケーションのデータを取得しマスターデータとして活用 入力フロー

     ① 求人を出している店舗のIDを入力  ② 店舗に紐づく情報(企業名・店舗名・求人)が表示  ③ 表示された情報を元に入力値が間違いないかチェック    表示されない場合は登録不可 ※ちなみにプルダウンから店舗IDを選択させようとするとアプリが重すぎて動作しなくなりました