2

私はサイトを検索しましたが、私の質問に完全に答える質問/回答が見つかりませんでした。私が見つけた最も近いものは、Syncing objects between two disparate systems best approach .

とにかく、利用可能なRSSフィードがないため、Webページをスクリーンスクレイピングしています。したがって、取得を行い、Webページを通過して、関心のあるすべての情報をスクラップし、その情報をsqlite データベースを使用して、Web サイトから繰り返しフェッチすることなく、暇なときに情報を照会できるようにします。

ただし、sqlite dbに保存されているデータ自体にさまざまなメタデータも保存しています。たとえば、データを見たことがありますか、データは新しい/古いか、データのチャンクへのブックマークです(コレクションと考えてください無関係なデータの、ブックマークは、そのデータの処理/読み取り中の場所へのポインターにすぎません)。

したがって、現在の私の現在の問題は、効果的かつ簡単な方法で、Web サイトからの新しいデータおよび/または変更されたデータでローカル sqlite データベースを更新する方法を見つけようとしています。

これが私の現在の考えです:

  1. ページ自体をダウンロードする
  2. 解析されたデータが入る一時テーブルを作成します
  3. 公式テーブルと一時テーブルを比較し、更新情報や新しい情報を公式テーブルにコピーします

一時テーブル内のデータが新規か、更新済みか、または変更されていないかを判断する方法を理解する必要があるため、このプロセスはやや複雑に思えます。だから私は、より良いアプローチがないか、またはそのようなシステムを構築/構築する方法について何か提案があるかどうか疑問に思っていますか?

編集 1: 追加情報をコメントまたは編集としてどこに入力すればよいかわからないため、ここに追加します。

これは、ブックマークに関してメタデータを少し拡張します。基本的に、データ ソースは新しいデータを作成したり、現在のデータに追加したりできるため、一時テーブルのアイデアを考えていた理由の 1 つは、 「ブックマーク」されたデータ ソースに新しいデータがあるかどうか。

4

1 に答える 1

0

一時テーブルのデータが新しいか、更新されたか、または変更されていないかを判断することは本当に重要ですか? 変更の履歴を保持する必要は本当にありますか?

いいえ: 一時テーブルを使用せず、古いレコードを古いものとしてマーク (タイムスタンプ) し、更新を行わず、新しいデータを挿入するだけです。

はい: あなたの考えは私には正しいように思えますが、すべては毎回処理する必要があるデータの量に依存します。大量のデータでは実現可能ではないと思います。

于 2010-04-26T15:40:13.890 に答える