Skip to content

yk-st/data-source

Repository files navigation

data-source

以下の書籍に関するリポジトリです。データソースを担当します

エンジニアのためのデータ分析基盤 基本編 エンジニアのためのデータ分析基盤XXX編

Commit Activity

Release

License

リポジトリについて

本リポジトリは『エンジニアのための データ分析基盤入門(実践編)』の検証用リポジトリです。
本書の内容を再現できること(再現性)を優先しているため、利用するプロダクトやバージョンは常に最新とは限りません。

読者の皆さまにも実際に手を動かして再現していただけることを意図し、Dockerを前提に手順と構成を用意しています。

筆者の検証環境では動作確認を行っていますが、OS・CPU(Intel/Apple Silicon)・Docker/仮想化設定・リソース制限・ネットワーク設定などの環境差分により、同一結果を再現できない場合があります。
そのため、各環境固有の差分吸収(設定調整、バージョン更新、リソース確保等)は、各自で適宜対応してください。

筆者は、利用プロダクトのバージョンアップ等による変更やメンテナンス状況の変化があった場合に、必要に応じてベストエフォートで本リポジトリを更新します。

なお、同梱する第三者ソフトウェアには、それぞれのライセンスが適用されます。

全体構成

全体像

データソースの技術選択に関しては以下を基準としています。

  • Webは活動がデジタル化されているケースが非常に多く、具体例として分かりやすい。
  • 業界固有の指標(財務指標など)をベースにすると、言葉の定義や説明が煩雑になり、理解できない人が増えるため避けました。

データソースとしての役割を担っています。データベースとしてds_rdb、APIとしてds_api、静的ファイルをMinIOへ配置しています。 基本的にホストを通してローカルデータ分析基盤と接続します。

構成要素

  • ds_api - APIを提供するコンテナです。天気のAPIを実装しています。
  • ds_rdb - データソースのデータベースを提供するコンテナです。ordersやpeopleなどのデータを保存しています。
  • mongo - MongoDBを提供するコンテナです。リバースETLの受け口としてや、リアルタムデータの格納のために利用しています。

固定データの配置

接続情報に記載のバケットなどを作成しdata-sourceバケットへ初期データを配置している。

  • fixed_dataset/fund -> ファンド関連のCSVデータ
  • fixed_dataset/legacy -> 別システム or 旧システム想定のファンドやOrdersデータのCSV
  • fixed_dataset/ref -> 参照データ用CSV
  • fixed_dataset/wrangling -> ラングリング用データ(pdfやexecelなど)

各データの中身は、data-platform-on-local/airflow/README.mdを参照してください。

APIのデータサンプル

利用することよにって返却されるデータのサンプルです

リクエスト

read -r -d '' BODY <<'JSON'
[
  {"lat": 35.46, "lon": 139.62, "dt": "2025-05-05T09:00:00Z"},
  {"lat": 43.06, "lon": 141.34, "dt": "2025-05-05T09:00:00Z"}
]
JSON

echo $BODY

curl -s -X POST "http://api.local.datasource:8000/weather" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d "$BODY" | jq

レスポンス

[
  {
    "lat": 35.46,
    "lon": 139.62,
    "dt": "2025-05-05T09:00:00Z",
    "temperature_c": 23,
    "condition": "SUNNY",
    "generated_at": "2025-07-22T13:22:01Z"
  },
  {
    "lat": 43.06,
    "lon": 141.34,
    "dt": "2025-05-05T09:00:00Z",
    "temperature_c": 5,
    "condition": "WINDY",
    "generated_at": "2025-07-22T13:22:01Z"
  }
]

セットアップ手順

git clone https://github.com/yk-st/data-source.git -b v1.0.0

※ -bはv1.x.xの最新のタグを指定してください。

クローン後は各ディレクトリでdocker compose upコマンドを実行してください。

起動順の制約

なし

コンテナ利用時の注意点

host.docker.internalを使って通信している部分があるためLinux系OS利用の方はextra_hostsの設定が必要になる場合があります。

About

[エンジニアのための]データ分析基盤入門<実践編> 主要プロダクトに共通する理論×技術 クラウド&オンプレ対応

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors