データ共有と連携
データを集め、整理し、加工しても、それを必要な人やシステムに届けられなければ分析の価値は発揮されません。このページでは、CSV/XML/JSON/Excelなど指定フォーマットへのエクスポート、DBテーブルへのレコード挿入、REST APIによるデータ取得、SFTP/ファイル共有サーバーからのダウンロード、BIツールによるレポート・ダッシュボード作成という、データを「届ける・活かす」ための技術を整理します。
第8章の締めくくりとして、これまで学んだ収集・構造化・蓄積・加工の集大成が、この「共有」の工程です。分析結果を実際にビジネスの意思決定に活かすための最後の一歩を見ていきましょう。
1. 分析結果を指定フォーマットでエクスポートする
分析や加工の結果は、それを利用する相手のシステムやツールに合わせた形式で出力する必要があります。代表的な出力形式には、表計算やデータベースで扱いやすいCSV※1、階層構造を表現できるXML※2、Web APIとの相性がよいJSON※3、そしてビジネスの現場でそのまま開けるExcel形式などがあります。
「どの形式で出力すべきか」は、受け取る相手が何を使ってそのデータを読み込むかによって決まります。社内の担当者にそのまま見てもらいたいならExcel、システム間でプログラムが自動的に読み込むならCSVやJSON、他システムとの構造的なデータ交換が必要ならXML、というように使い分けます。この「指定フォーマット形式に変換してエクスポートできる」ことは、DS検定でも必須項目として位置づけられています。
| 形式 | 特徴 | 向いている場面 |
|---|---|---|
| CSV | カンマ区切りのシンプルな表形式 | 表計算ソフトやDBへの一括取り込み |
| XML | タグで階層構造を表現 | 企業間の構造的なデータ交換 |
| JSON | キーと値で構造を表現、軽量 | Web APIでのデータ受け渡し |
| Excel | 表・グラフ・書式をそのまま保持 | 社内担当者への報告・共有 |
- 月次の売上分析結果を、経営会議向けにExcel形式でエクスポートしてグラフ付きで共有する
- 他システムとのバッチ連携のため、処理結果をCSV形式で夜間に自動出力する
- 外部の在庫管理サービスとのやり取りのため、商品データをJSON形式に変換してAPI経由で送信する
「誰が」「何のツールで」その結果を受け取るのかを考えると、自然と出力形式は決まってくるよ。形式は目的の後についてくるものだと覚えておいてね。
2. 接続先DBのテーブル仕様に合わせてレコードを挿入する
分析・加工した結果を、ファイルとして渡すだけでなく、相手のデータベースに直接書き込みたい場合もあります。このとき重要になるのが、接続先のテーブル仕様に合わせてレコードを挿入することです。テーブル仕様とは、列名・データ型・必須項目・文字数制限など、そのテーブルが受け入れられるデータのルールのことです。
たとえば、接続先のテーブルで「顧客ID」がちょうど10桁の数字と決められているのに、こちらのデータが9桁だったり文字列混じりだったりすると、挿入時にエラーになったり、意図しないデータが登録されてしまったりします。SQLのINSERT文※4を使ってレコードを挿入する際は、事前にテーブル定義(列の並び順、データ型、NULLを許可するかどうかなど)を確認しておくことが欠かせません。
- 接続先の「注文テーブル」の日付列がYYYY-MM-DD形式のため、自社データの日付形式を変換してから挿入する
- 必須項目である「顧客ID」が欠損している行は、挿入前に除外またはエラーとして扱う
- 文字数制限(varchar(50)など)を超える文字列は、挿入前に切り詰めるか警告を出す
レコード挿入で起きるトラブルの多くは、「データ型の不一致」「必須項目の欠損」「文字数オーバー」のいずれかです。挿入前にテーブル定義を確認する一手間が、後の事故を防ぎます。
3. REST APIを用いたデータ取得
データ共有・連携の場面でも、8-2で学んだAPIの知識が活きてきます。特に広く使われているのがREST※5という設計思想にもとづくWeb APIです。RESTなAPIでは、URLで対象(何のデータか)を指定し、GET(取得)・POST(登録)などの操作方法を組み合わせて、必要なデータをやり取りします。
たとえば、あるサービスの「顧客一覧を取得するAPI」を呼び出すと、レスポンス(応答)としてJSON形式のデータが返ってくる、というのが典型的な流れです。RESTのAPIを用いて必要なデータを取得できることは、社外サービスとのデータ連携において基本となるスキルです。
- 天気情報サービスのREST APIを呼び出し、指定した地域の週間天気予報データを取得する
- 会計ソフトのREST APIから、当月の仕訳データをJSON形式で取得し、分析用に整形する
- 広告配信サービスのAPIから、広告ごとのクリック数・表示回数を定期的に取得する
8-2の「収集」でAPIを勉強したの覚えてる?共有・連携の場面でも同じAPIが「取得」の窓口として使われるんだよ。データの出入り口はけっこう共通してるんだよね。
4. SFTP・ファイル共有サーバーからのデータ活用
取引先や社内他部署とのデータのやり取りでは、今なおSFTPサーバー※7やファイル共有サーバー※8が広く使われています。これらのサーバーに置かれたデータファイルを必要なタイミングでダウンロードし、Excelなどの表計算ソフトに取り込んで活用できることは、DS検定でも必須項目とされる実務スキルです。
たとえば、取引先が毎月月初にSFTPサーバーへ前月分の取引データをアップロードするという運用ルールがある場合、担当者はそのファイルをダウンロードし、Excelで整形して社内の分析に使います。派手な技術ではありませんが、企業間のデータ連携の実態としては、こうした地道なファイルベースのやり取りが今も数多く存在します。
- 取引先のSFTPサーバーから月次の受発注データをダウンロードし、Excelで自社フォーマットに整形する
- 社内のファイル共有サーバーに置かれた各拠点の在庫データを集約し、全社の在庫状況をExcelでまとめる
- SFTPからダウンロードしたCSVファイルの文字コードを確認し、Excelで文字化けせずに開けるようにする
API連携が主流になりつつある今も、SFTPやファイル共有サーバーによるバッチ的なやり取りは実務で根強く使われています。地味に見えても確実に押さえておくべき必須スキルです。
5. BIツールでのレポート・ダッシュボード作成
加工・分析したデータを、意思決定に使える形で「見せる」役割を担うのがBIツール※6(Business Intelligenceツール)です。BIツールはデータベース上のテーブルを直接参照し、グラフや表を組み合わせたレポートやダッシュボードを作成できるソフトウェアです。
BIツールを使うスキルは大きく2つに分けられます。ひとつは、データベース上のDBテーブルを参照して新規レポートやダッシュボードを作成し、指定のユーザーグループに公開するスキルです。もうひとつは、あらかじめ用意されたダッシュボードだけでなく、BIツールの自由検索機能を活用して必要なデータを自分で抽出し、グラフを作成するスキルです。前者は「作って配る」、後者は「自分で探して見る」という違いがあります。
- 営業部門向けに、注文テーブルを参照した「月次売上ダッシュボード」を作成し、営業チーム全員に公開する
- 経営陣から「地域別・年代別の購買傾向が見たい」と急に頼まれ、BIツールの自由検索機能でその場でデータを抽出しグラフ化する
- ダッシュボードの公開範囲をユーザーグループごとに設定し、部署外のメンバーには見せない設定にする
BIツールは「作る側」と「使う側」のどちらの視点でも出題されます。レポートを作って公開するスキルと、自由検索でその場でデータを引き出すスキルの両方を押さえておきましょう。
ここまでの8-1から8-6で、データエンジニアリングの「収集→構造化→蓄積→加工→共有」の流れが一通り見えたね。次はいよいよプログラミングの基礎に入っていくよ!
まとめ
このレッスンでは、データを届け、活かすための技術を見てきました。最後に振り返っておきましょう。
- 指定フォーマットへのエクスポート ― 加工・分析処理結果をCSV、XML、JSON、Excelなどの形式に変換してエクスポートできる(必須項目)
- DBテーブルへのレコード挿入 ― 接続先DBのテーブル仕様に合わせてレコードを挿入できる(必須項目)
- REST APIでのデータ取得 ― RESTなどのデータ取得用Web APIを用いて、必要なデータを取得できる
- SFTP/ファイル共有サーバー ― 必要なデータファイルをダウンロードして表計算ソフトに取り込み活用できる(必須項目)
- BIツールでのレポート/ダッシュボード ― DBテーブルを参照して新規レポート・ダッシュボードを作成し公開できる/自由検索機能でグラフを作成できる
これで第8章「データエンジニアリング」前半の6レッスンが終わりました。データの収集から共有までの一連の流れを押さえたところで、次のレッスンからはプログラミングの基礎に進みます。変数や制御構文、アルゴリズムといった、実際にデータ処理プログラムを組み立てるための土台を学んでいきましょう。
- CSV(Comma-Separated Values) … 値をカンマ(,)で区切って表形式のデータを表現する、シンプルで軽量なファイル形式のこと。↩
- XML(Extensible Markup Language) … タグを使ってデータの階層構造を表現するマークアップ言語のこと。企業間の構造的なデータ交換によく使われる。↩
- JSON(JavaScript Object Notation) … キーと値の組み合わせで構造を表現する、軽量なデータ形式のこと。Web APIのやり取りで標準的に使われる。↩
- INSERT文 … SQLにおいて、テーブルに新しい行(レコード)を追加するための命令文のこと。↩
- REST(Representational State Transfer) … URLで対象を指定し、GET/POSTなどの操作でデータをやり取りする、Web APIの代表的な設計思想のこと。↩
- BIツール(Business Intelligenceツール) … データベース上のデータを参照し、グラフや表を組み合わせたレポート・ダッシュボードを作成できるソフトウェアのこと。↩
- SFTPサーバー … SFTP(SSH File Transfer Protocol、通信を暗号化してファイルを安全にやり取りする方式)に対応した、ファイル送受信用のサーバーのこと。↩
- ファイル共有サーバー … 複数の利用者がファイルを保存・閲覧・編集できるよう共有領域を提供するサーバーのこと。社内LANでよく使われる。↩