1.一行が何を表すか決める
pythonの過去投稿について本文と保存されたスコアを調べる表を考えます。一行は受け入れた元の投稿とし、実行情報は別に管理します。分析に必須の値と、省略されても利用できる値を分けてください。これは利用側の表設計であり、APIが全項目や全投稿を返すという説明ではありません。
2.入力を変換せず保存する
https://api.redditdataapi.com/v1/posts?subreddit=python&limit=3をサーバーから呼び、変換前の応答を保存します。秘密を除いた経路と条件、取得時刻、取込処理の版も残してください。独立した過去のアーカイブは公式のライブサービスではありません。成功した空結果も処理の入力として記録し、変換エラーと混同しないようにします。
3.元の項目から列への規則を書く
idは元の文字列を保存するか決めます。titleとtextでは省略、null、空文字列を区別します。scoreでは許容する数値型を定め、値の不在を無断で0へ変えないようにします。created_utcは単位を確かめてから時刻変換を選びます。列名と規則の対応を残すと、後から値の意味を追えます。
派生列は自分の変換結果として明示し、失敗時には元の値を残します。存在するparent_idやlink_idでローカルに結べても、完全な会話や祖先が揃うとは限りません。任意の倉庫スキーマをサーバーが検証しているわけではありません。
4.拒否を調査可能にする
拒否した行には原本への参照と失敗した規則を添えます。型の不一致と、分析条件による意図的な除外を分けてください。変換コードを直すべきか選択方針を変えるべきかが異なるためです。受入、拒否、除外の件数はこの入力の処理結果であり、Reddit全体の活動量ではありません。
5.照合してから書き込む
新しい規則は同じ保存済み入力で試してから、受け入れた行を倉庫へ入れます。使える識別子があれば重複時の扱いを定義します。ページをまたぐ一意性は保証されません。原本と正規化結果を分け、以前の判断の根拠を新しい変換で上書きしないようにしてください。
必要なファイルと書込結果を記録してからローカルの進捗を更新します。これは固定サーバーカーソルではありません。_docは時系列や関連性の順序ではなく、取得は1回100件、クエリ100ページまでです。
6.次の取得に目的を持たせる
追加のバッチは、新たな検証や分析に必要なときに取得します。変換の再実行だけなら手元の入力を使えます。将来の応答は変わる場合があります。日付や総数は文書ページ、成功分の課金と予約返還、再試行の費用は価格ページで確認してください。成果物は説明可能な取込手順であり、外部アーカイブの完全かつ不変なエクスポートではありません。