待辦事項 #10040

無尽蔵のデータに重複があるとエラーになる
啟用日期: 2007-03-05 18:51 最後更新: 2007-07-01 12:51

回報者:
負責人:
類型:
狀態:
關閉
元件:
(無)
里程碑:
(無)
優先權:
5 - 中
嚴重程度:
5 - 中
處理結果:
修正
檔案:
1

細節

無尽蔵のデータに重複があるため、データベースに登録する
際にエラーになる。

Ticket History (3/5 Histories)

2007-03-05 18:51 Updated by: panacoran
  • File 1760: duplicate.csv is attached
2007-03-05 20:34 Updated by: None
評語
Logged In: NO

t_sugaです。


下記のバージョンで、エラーも出ず
1996年以降、株価をダウンロード出来ました。

下記が、その対策して有る箇所のようです。

// $Id: PriceDataUpdator.cs,v 1.16 2007/02/03 09:23:27
panacoran Exp $


for (PriceData curr; (curr = stream.Read()) != null; prev
= curr)
{
// mujinzou.web.infoseek.co.jpに置いてあるデータは
// 同日同市場同銘柄のデータが二つ並んでることがある。
// 後者のデータが正解らしい。
if (prev == null || (curr.MarketId == prev.MarketId &&
curr.Code == prev.Code))
continue;
dataList.Add(prev);
}
2007-03-06 00:04 Updated by: panacoran
  • 處理結果 Update from to 修正
評語
Logged In: YES
user_id=6886

重複しているデータのうち、2005年のデータは前のデータが正し
く、2006年のデータは後のデータが正しいです。前に調べたのは
2005年だったので、2006年の重複が考慮されていませんでした。

データが重複している場合に、data/duplicate.logにデータを出
力してから正しいデータを返すように、PriceDataStream.Read()
をMujinzouDataStream.Read()でoverrideしました。

無尽蔵にこの件は連絡済ですが、直ったとしても重複データへの
対応は残しておいたほうがいいかもしれません。
2007-04-08 20:14 Updated by: panacoran
評語
Logged In: YES
user_id=6886

無尽蔵とのやり取りで、データが重複しているのではなく、市場
の指定が誤っていることがわかりました。たとえば、
2005/2/28,6333,22,6333 帝国電機
製,1231,1240,1230,1233,18000,大証2部
2005/2/28,6333,22,6333 帝国電機
製,1235,1240,1232,1233,35000,大証2部
これは重複ではなく、前者が東証2部のデータなのです。すでに
無尽蔵のデータは、これらのミスをすべて修正してあります。

先日実装した重複したデータのうち「正しい」データを返す処理
には意味がありませんが、今後も同じミスが起こらないとは限ら
ないので、重複の検出自体は行うようにしておきます。
2007-07-01 12:51 Updated by: panacoran
  • Ticket Close date is changed to 2007-07-01 12:51
  • 狀態 Update from 開啟 to 關閉

Attachment File List

編輯

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » 登入