antist.ai
シナリオ一覧

図面セット · L0–L3

データシステムを動かす

データシステムとは、誰も見ていない間も動き続ける機械です。予定どおり情報源を取得し、返ってきたものを整え、保存し、結論を公開します。その故障は静かです。情報源が形式を変え、ジョブが黙って飛ばされ、ページは昨日の数字を今日のもののように表示し続けます。この図面セットは、本サイトの世界情報レーダーを実例に、こうしたシステムの形を示します。

設計思想

データシステムとは、その数字が正しく新しいという約束です。何も表示しないのは誠実ですが、古いデータを新しく見せるのは自動で語られる嘘です。

  1. 静けさこそ敵

    危険な故障はクラッシュではなく、ジョブが飛ばされ、空を返し、成功と報告することです。違うと証明されるまで、空の結果は警報として扱います。

  2. 原料を残す

    変換する前に、情報源が実際に返したものを保存します。ロジックは直して再実行できますが、残さなかったデータは戻りません。

  3. 主張を検証可能に

    すべての結論は情報源と取得時刻を指し示し、予測は公開の場で答え合わせをします。信頼は自信からではなく、検証できることから生まれます。

自分のための収集なら、ファイルに書く定期スクリプトで十分です。他人が出力に頼り始めたらホスト型の定期実行とデータベースへ。キューに進むのは、1 回の実行が時間制限に収まらなくなってからです。

図番L0

個人の収集器

使う人自分だけ
月額$0

①なぜ上がるか

同じ情報源を手で確認し続けていて、機械に任せたい段階です。読むのは自分だけなので、実行漏れは空白ができるだけで済みます。

②アーキテクチャ

自分のマシンでタイマー実行するスクリプトが、いくつかの情報源を取得し、実行ごとに日付付きのファイルを書きます。生の応答は整えた結果の隣に保存します。

Δ この段階で追加

  • + 定期実行のスクリプト
  • + 実行ごとの日付付きファイル
  • + 結果の隣に生の応答

地図上の形: 定期スクリプト → ファイル

③ツール

情報源に最適なパーサーがある言語を使います。ページのスクレイピングより公式のフィードや API を優先します。壊れにくく、規約も明確です。

④コードとテスト

  • 実行ごとに取得件数を 1 行書く。0 件は成功ではなく警告です。
  • 生の応答をいくつか保存し、パーサーを変えるたびにそれでテストする。
図番L1

公開フィード

使う人出力に頼る読者
月額$0–5

①なぜ上がるか

他の人がページを読み、ダイジェストを購読しています。ノート PC を閉じたらデータが欠ける、はもう許されず、間違った数字は他人を誤らせます。

②アーキテクチャ

スケジュールはホスト型の基盤へ移り、毎時収集器を動かしてデータベースに書き、公開ページを配信します。保存前にすべての項目を想定の形で検証し、実行ごとに自身の健全性を記録します。

Δ この段階で追加

  • + ホスト型のスケジュール
  • + ファイルの代わりにデータベース
  • + 入口での検証
  • + 実行ごとの健全性記録

地図上の形: ホスト型 cron + DB + サイト(レーダーの形)

③ツール

スケジュール、データベース、サイトが同じ場所にある基盤を選びます。部品が少ないほど静かな故障も減ります。ジョブを設計する前に、1 回あたりの時間と CPU の上限を確認します。

その他の選択肢 · 本サイト未検証

④コードとテスト

  • 入ってくる項目をすべてスキーマで検証し、合わないものは保存せず拒否して記録する。
  • 公開ページのすべての数字の横に取得時刻を表示する。
  • 情報源が 0 件を返したとき、または実行自体が起きなかったときに警告する。
図番L2

お金と信頼

使う人結論に基づいて行動する人
月額$5–25

①なぜ上がるか

読者は出力から判断を下し、購読者は支払うかもしれず、一部の情報源には利用規約や個人情報があります。間違った数字や漏れたフィールドには結果が伴います。

②アーキテクチャ

結論は情報源と日付とともに追記のみの台帳に入り、予測は期限が来るとコードで精算されます。生の応答は安価なストレージに保管し、情報源ごとの規約を記録し、個人データは保存前に除去します。

Δ この段階で追加

  • + 追記のみの主張台帳
  • + 予測の自動精算
  • + オブジェクトストレージの生アーカイブ
  • + 情報源の規約記録と個人データのフィルター

地図上の形: ホスト型 cron + DB + サイト(レーダーの形)

③ツール

判断と記帳を分けます。分析はモデルが書いてもよいですが、予測が当たったかの精算は、誰でも再実行できる普通のコードでなければなりません。

④コードとテスト

  • 台帳の項目は決して編集しない。訂正は古い項目を指す新しい項目にする。
  • 予測はモデルではなく決定的なコードで精算する。
  • 汚染テストをする。キーや個人データを含む項目を流し込み、どれも DB に届かないことを確かめる。
図番L3

スケール

使う人多くの情報源と利用者
月額$50–500+

①なぜ上がるか

数百の情報源が 1 回の時間制限に収まらず、毎時いくつかが失敗し、何年分の履歴に問いを投げたい人が現れました。

②アーキテクチャ

収集はキュー上の小さなジョブに分かれ、それぞれ個別に再試行でき、2 回動いても安全です。生のアーカイブが唯一の事実の源となり、分析層は手で直すのではなくそこから作り直します。

Δ この段階で追加

  • + 冪等な小ジョブのキュー
  • + 情報源ごとのバックオフ付き再試行
  • + 事実の源としての生アーカイブ
  • + 作り直せる分析層

地図上の形: キューベースのパイプライン · データウェアハウス + 分析層

③ツール

ウェアハウスより先にキューを入れます。多くのデータシステムは、DB 一つで答えられない問いより、ずっと先に 1 回の時間制限にぶつかります。

その他の選択肢 · 本サイト未検証

④コードとテスト

  • すべてのジョブを冪等にし、再試行で重複が生まれないようにする。
  • 派生テーブルはどれもコマンド一つで生アーカイブから作り直せるようにし、実際に練習する。
  • 情報源ごとに鮮度を追い、古くなったら担当者に知らせる。

アーキテクチャ全景

取り得るすべての形。その大半は「まだ作るべきでないもの」を知るためにある。

定期スクリプト → ファイル

個人的な収集。マシン 1 台。出力は自分で読む

$0 · 最小

△ 他人が出力に依存する、またはマシンが止まるとデータが欠ける

ホスト型 cron + DB + サイト(レーダーの形)

他人が頼る公開ページや配信。1 回の実行は 1 分以内

$0–5/月 · 低〜中

△ 1 回の実行が基盤の時間や CPU の上限に収まらない、または並列取得が必要

キューベースのパイプライン

多くの情報源、再試行、部分的な失敗に耐えるべき工程

$5–50/月 · 中〜高

△ 最新ページだけでなく、何年分の履歴に問いを投げる必要が出た

データウェアハウス + 分析層

大量の履歴、多くの利用者、誰も想定しなかった問い

$50–500+/月 · 高

△ ここが最上階。DB 一つでまだ答えられるなら下にとどまる

本当に必要な概念

各概念に平易な一文とたとえ話をひとつずつ。ツールモジュールをクリックしても同じ解説が出る。

冪等性
同じジョブを 2 回実行しても 1 回と同じ結果になり、再試行で重複が生まれません。
≈ エレベーターのボタンを 5 回押しても、来るのは 1 台。
鮮度
表示するすべての数字に取得時刻を付け、データが古くなったらシステムがはっきり伝えるべきです。
≈ 店の入口だけでなく、すべてのパックに賞味期限を書く。
スキーマの変化
情報源が黙って形式を変えます。収集側が確認しなければ、空や誤りのフィールドを保存し続けます。
≈ 知らせずに箱の大きさを変える仕入れ先。棚は埋まるが、中身が違う。
台帳
主張と結果を追記のみで記録し、結論を実際に起きたことと照合できるようにします。
≈ すべての予報を壁に書き、一つずつ当たり外れを記す気象台。