第8章 8-2 / データエンジニアリング

データ収集

このページで学ぶこと

分析環境が整ったら、次に必要なのは肝心の「データ」を集めることです。このページでは、SDK/APIを使ったデータ取得Webスクレイピングによる静的コンテンツの収集HTTPS/SFTPなどの通信機能を使ったデータ転送社内システムからExcel形式の小規模データセットを作成する実務分析用のログ出力の仕様整理という5つの観点からデータ収集の技術を整理します。

「API」「スクレイピング」という言葉だけ聞くとエンジニア専門の世界に思えますが、要は「データがある場所から、必要な形でデータを取ってくる方法」の話です。実務で最も出番の多い分野なので、しっかり押さえましょう。

1. データ収集の全体像 ― どこから、どうやって集めるか

分析に使うデータは、大きく分けて「社内のシステムにすでにあるデータ」と「社外にあるデータ」の2種類があります。社内データは基幹システムやExcel台帳などから取り出せばよい一方、社外データはWebサイト、外部サービスのAPI、取引先からのファイル転送など、収集の経路そのものを設計する必要があります。データエンジニアリングにおける「収集」とは、この経路を正しく理解し、目的に合った手段で確実にデータを取ってくることを指します。

収集の手段は多岐にわたりますが、DS検定リテラシーレベルではSDK/API・Webスクレイピング・通信プロトコル(HTTPS/SFTP)という3つの代表的な手段と、社内実務としてのExcelでのデータセット作成、そして分析の入口を支えるログ設計を押さえておけば十分です。順番に見ていきましょう。

さえちゃん
さえ

データ収集は地味に見えて、実務では一番時間を使う工程なんだよね。「きれいなデータがどこかに転がっている」なんてことは、まずないから!

2. SDKとAPIを使ったデータ取得

クラウドサービスや分析ソフトウェアの多くは、外部のプログラムから機能を呼び出すための入口を用意しています。それがAPI※1(Application Programming Interface)です。APIは「レストランの注文窓口」にたとえるとわかりやすく、厨房(サービス内部の複雑な処理)がどう動いているかを知らなくても、決められた形式(メニュー)で注文(リクエスト)を送れば、欲しい結果(料理=データ)が返ってきます。

また、APIをプログラムから使いやすくするための部品セットをSDK※2(Software Development Kit)と呼びます。SDKを使うと、APIの細かい通信手順を自分で書かなくても、用意された関数を呼び出すだけでデータを取得できます。対象プラットフォーム(クラウドサービスや分析ソフトウェア)が提供するSDK/APIの概要を理解し、自分の目的に合わせて適切に選び、説明できることが求められます。

EXAMPLE ― SDK/APIの活用場面
  • 気象データ提供サービスのAPIを呼び出し、地点・期間を指定して気温データを取得する
  • クラウドストレージのSDKを使い、プログラムから自動的にファイルをアップロードする
  • SNSサービスが提供するAPIを使い、自社アカウントの投稿への反応数をまとめて取得する

3. Webスクレイピングによる静的コンテンツの収集

APIが用意されていないWebサイトからデータを集めたい場合に使われるのがWebスクレイピング※3です。スクレイピングとは、Webページのソースコード(HTML)を取得し、そこから必要な情報(価格・商品名・日付など)を自動的に抜き出す技術のことです。人間がブラウザで見て手作業でコピー&ペーストする作業を、プログラムに肩代わりさせるイメージです。

DS検定で扱う範囲は、ページを開くたびに内容が変わらない静的コンテンツ※8を対象とした収集です。静的コンテンツとは、サーバーが最初から完成した状態でHTMLを返してくれるページのことで、JavaScriptによって表示後に内容が動的に書き換わるページとは区別されます。Webクローラー・スクレイピングツールを用いて、こうした静的コンテンツを分析用データとして収集できることが、この分野のスキルです。

EXAMPLE
  • 複数の店舗の公開価格ページから、商品名と価格を定期的に自動収集して価格推移を分析する
  • 自治体の公開ページから、イベント情報の一覧を抜き出してカレンダーデータを作る
  • 競合企業のプレスリリース一覧ページから、発表日とタイトルを収集してトレンドを追う
POINT

スクレイピングは便利な技術ですが、対象サイトの利用規約やrobots.txt(クローラーの巡回ルールを示すファイル)を確認し、著作権や個人情報保護、サーバー負荷への配慮を欠かさないことが大前提です。技術面だけでなく倫理面も試験で問われるポイントです。

さえちゃん
さえ

「できるから」で何でも収集していいわけじゃないよ。第1章で学んだデータ・AI倫理ともつながる話だから、ここでもう一度思い出しておいてね。

4. HTTPS・SFTPによるデータ転送の実装

データを収集するもう一つの代表的な経路が、システムやネットワーク機器に用意された通信機能を使った転送です。代表的なものにHTTPS※4SFTP※5があります。

HTTPSは、Webブラウザがサイトを表示するときにも使われている通信の仕組みで、通信内容が暗号化されているため安全にデータをやり取りできます。SFTPは、ファイルをサーバーとの間でやり取りするための古くからある仕組み(FTP)を置き換える形で登場したもので、SSH※7という別の暗号化の仕組みの上でファイル転送を行います。単純にFTPへ暗号化を後付けしたものではない点に注意しましょう。取引先とのファイル交換など、企業間のデータ連携で今も広く使われています。データを収集先(自社のストレージやデータベースなど)に確実に格納するための機能を、こうした通信プロトコルを用いて実装できることが求められます。

プロトコル 主な用途 特徴
HTTPS Web API呼び出し、Webサイトからのデータ取得 暗号化されたHTTP通信。ブラウザ・APIの標準
SFTP 取引先や社内サーバーとのファイル送受信 暗号化されたファイル転送。定期バッチ連携で多用

5. 社内システムからExcel形式のデータセットを作る

データエンジニアリングというと大がかりなシステムを想像しがちですが、実務で最も頻度が高いのは、社内のシステムやサービスから必要な情報を取り出し、Excel形式の小規模なデータセットを作成する作業です。これはDS検定のスキルチェック項目でも「必須」に指定されている、いわば実務の基本動作です。

たとえば、販売管理システムから今月の受注データをCSVでダウンロードし、Excelで開いて必要な列だけを整理する、複数部署から届いたExcelファイルを1つのシートに統合する、といった作業です。派手さはありませんが、これができなければどんな高度な分析手法も使う機会がありません。

EXAMPLE
  • 会計システムの管理画面から月次の売上データをダウンロードし、Excelで分析用に整形する
  • 顧客管理システム(CRM)から問い合わせ履歴をエクスポートし、Excelで担当者別に集計する
  • 勤怠管理システムからCSVを取得し、Excelで部署別の残業時間データセットを作る
POINT

大規模なAPI連携やスクレイピングよりも先に、「社内システムから必要なデータをExcelで取り出せるか」が実務の第一関門です。DS検定でも必須項目として明示されている、地味だが最重要のスキルです。

6. 分析のためのログ出力の仕様を整理する

既存のサービスやアプリケーションを分析対象にする場合、そもそも「分析に必要な情報がログとして記録されているか」を確認する必要があります。ログ※6とは、システムの利用状況や動作を時系列で記録したデータのことです。

たとえばECサイトのアクセス解析をしたい場合、「いつ」「誰が(会員IDなど)」「どのページを」「どんな操作をしたか」がログに記録されていなければ、後からどれだけ分析したくても手も足も出ません。分析目的から逆算して、どんな項目を、どんな粒度・頻度でログに残すべきかという仕様を整理することも、データエンジニアリングの重要な仕事です。

EXAMPLE ― ログ出力仕様の整理
  • ECサイトの離脱率を分析したいので、「商品ページ閲覧」「カート追加」「購入完了」の各イベントをログに残す仕様にする
  • アプリの機能改善のために、どの画面がどのくらいの時間表示されたかをログに記録する
  • 不正アクセスを検知するため、ログイン失敗の回数と時刻をログに残す仕様を追加する
POINT

ログは「後から必要になって初めて欲しくなる」データの代表格です。分析したい仮説が決まった段階で、「今のログ仕様で検証できるか」を早めに確認しておくことが、手戻りを防ぐコツです。

さえちゃん
さえ

「分析したいのにログが残ってなかった…」は本当によくある悲劇。ログ設計は地味だけど、データ収集の一番手前にある超重要な仕事なんだよ。

まとめ

このレッスンでは、データを集めるための5つの代表的な手段を見てきました。最後に振り返っておきましょう。

  1. SDK/API ― クラウドサービスや分析ソフトウェアが提供するSDK/APIの概要を理解し、目的に応じて活用する
  2. Webスクレイピング ― Webクローラー・スクレイピングツールで静的コンテンツを分析用データとして収集する
  3. 通信機能によるデータ転送 ― HTTPS・SFTPなどの通信機能を用いて、収集先にデータを格納する機能を実装する
  4. Excel形式のデータセット作成 ― 社内システムから必要な情報を取り出し、小規模なデータセットを作成する(必須項目)
  5. ログ出力の仕様整理 ― 分析目的から逆算し、既存サービスのログ出力仕様を整理する

次のレッスンでは、こうして集めたデータを分析に使える形に整理する「データ構造とテーブル定義」を扱います。構造化データと非構造化データの違い、ER図の読み方、正規化の考え方を見ていきましょう。

脚注 ─ 用語解説
  1. API(Application Programming Interface) … プログラムやサービスの機能を、外部から呼び出して利用できるようにする窓口の仕様のこと。
  2. SDK(Software Development Kit) … APIなどをプログラムから使いやすくするための、関数やサンプルコードをまとめた開発キットのこと。
  3. Webスクレイピング … Webページのソースコードを取得し、そこから必要な情報を自動的に抜き出す技術のこと。
  4. HTTPS … Webブラウザとサーバーの通信を暗号化して行う仕組みのこと。URLの先頭が「https://」で始まるサイトはこの仕組みを使っている。
  5. SFTP(SSH File Transfer Protocol) … 通信を暗号化しながらファイルを送受信するためのプロトコル(通信規約)のこと。企業間のファイル連携で広く使われる。
  6. ログ … システムの利用状況や動作を、発生した日時とともに記録したデータのこと。分析の元データとしても重要。
  7. SSH(Secure Shell) … ネットワーク越しに別のコンピュータへ安全に接続・操作するための、通信を暗号化する仕組みのこと。SFTPはこのSSHの仕組みを土台にしてファイル転送を行う。
  8. 静的コンテンツ … サーバーが最初から完成した状態でHTMLを返してくれるWebページのこと。表示後にJavaScriptで内容が書き換わる「動的コンテンツ」とは区別される。