JRA公式競馬データ配信サービス JRA-VAN Data Lab.

JRA-VAN DataLab.

競馬ソフト開発コーナー

JV-Dataの使い方あれこれ

一括表示 リストに戻る
タイトルセットアップ完了済データにDELETE文を使用
記事No5215
投稿日: 2023/09/18(Mon) 16:23
投稿者まさ
  何か不具合があった場合、毎回セットアップデータをずっと昔から取り込む
のは3日間くらいかかって大変ですので、
 整合性がとれているデータを、時々バックアップ(わかりやすく年末まで)
行い、そこから再度セットアップを考えております。

  バックアップを取る際に、セットアップデータは年末までとしたいのに、
 競馬ソフトによっては、「fromtime」に終了ポイント時刻を指定して取り込
めないものもございました。

  そのようケースで、例えば、2022年12月31日までのバックアップを行いた
い場合、
 データが格納されている各テーブルを2023年以降すべてDELETE文で削除し、
 次のデータを取得する際に、「fromtime」に「20230101000000」を指定すれ
ば整合性は取れるのでしょうか
 (オプションに関しては、仮に1年以上経過しているのであればオプションを
1に、1年未満であればオプションを3にします)

  更新中に何かしらエラー発生でロールバックされ、正常終了(「lastfilet
imestamp」が更新)して、やり直したい場合や、
 「lastfiletimestamp」の値がわからなくなってしまったケースでも、このバ
ックアップから戻そうと思っております。

タイトルRe: セットアップ完了済データにDELETE文を使用
記事No5218
投稿日: 2023/09/18(Mon) 19:57
投稿者まさ
オプションの表記が逆でした

オプションに関しては、仮に1年未満経過しているのであればオプションを1に
、1年以上であればオプションを3にします

タイトルRe: セットアップ完了済データにDELETE文を使用
記事No5231
投稿日: 2023/09/22(Fri) 18:59
投稿者JRA-VANソフトサポート
JRA-VANソフトサポート 三木です。
DataLab.サービスをご利用頂きまして誠にありがとうございます。

> バックアップを取る際に、セットアップデータは年末までとしたいのに、
> 競馬ソフトによっては、「fromtime」に終了ポイント時刻を
> 指定して取り込めないものもございました。
>
> そのようケースで、例えば、2022年12月31日までのバックアップを
> 行いたい場合、データが格納されている各テーブルを2023年以降すべて
> DELETE文で削除し、次のデータを取得する際に、
> 「fromtime」に「20230101000000」を指定すれば整合性は取れるのでしょうか

オプション「3:セットアップ」を指定し、
「FromTimeに前回取得年を入れて再セットアップ」という方法は、
データの抜けは発生しないものの、仕様上重複を考慮する必要が生じます。

訂正データが主キーの訂正を伴う場合、既存のデータを削除する削除データと、
新しい主キーのデータの2行が提供されます。
例えば、1つの該当データについて以下の3つが提供されます。
1.初回提供データ
2.初回提供データの削除データ
3.訂正後提供データ

これらのデータは、セットアップデータを再作成したタイミングで1,2が除
外され、3のみが提供データとして残ります。

ユーザー様の取り込みが1しか行われていない場合でも、通常データの取り込
みを行えば、いずれ2,3のデータが取り込まれる仕組みとなっています。

これを1の取り込み後、2,3のデータが取り込まれる前に再度セットアップ
を行うと、2の削除データを取り込まずに、3のデータがセットアップにより取
り込まれることになります。そのため、該当のデータが重複することがあります。

どうぞよろしくお願いいたします。

タイトルRe^2: セットアップ完了済データにDELETE文を使用
記事No5233
投稿日: 2023/09/22(Fri) 20:14
投稿者まさ
JRA-VANソフトサポート 三木様

ご回答頂きまして、ありがとうございました。
なお、「DELETE」文は、考えるのをやめました。


例えば、「RACE」を最初の年度から全てを取り込もうとすると。
JVReadだけで数日かかってしまう試算となりましたので、
オプション「3:セットアップ」を指定し、
「FromTimeに前回取得年を入れて再セットアップ」という方法は
使わざる得ないと思っております。

一応、「FromTimeに前回取得年を入れて再セットアップ」の確認をしたいので

お手数ですが、ご回答お願いできますでしょうか?


【質問1】
「3:セットアップ」を1項目を1か月単位で考えておりますが、
以下の形で「FromTime」で問題ないかと思いますが、よろしかったでしょうか

@「20230101000000-20230199000000」
A「20230201000000-20230299000000」




> 例えば、1つの該当データについて以下の3つが提供されます。
> 1.初回提供データ
> 2.初回提供データの削除データ
> 3.訂正後提供データ
>
> これらのデータは、セットアップデータを再作成したタイミングで1,2
が除
> 外され、3のみが提供データとして残ります。

【質問2】
「3:セットアップ」を再作成した段階で、1と2が除外されるという事ですので

2と3が同時にくるケースは、「3:セットアップ」ではなく、
「通常データ取得」であれば、2と3が同時にくるケースはあるという認識であ
っておりますでしょうか?

毎月、「3:セットアップ」を取得するとして、例としてあげますと、
@ 2023年1月取得分 [新規] 2023年1月20日東京5R
A 2023年2月取得分 [訂正後] 2023年1月20日東京5R
となるかと思います。


> オプション「3:セットアップ」を指定し、
> 「FromTimeに前回取得年を入れて再セットアップ」という方法は、
> データの抜けは発生しないものの、仕様上重複を考慮する必要が生じます



【質問3】
今回、『JV-Data登録クラス』を参考にして、取り込み処理を作成しております

『JV-Data登録クラス』は、[主キー]のデータがあれば、[データ作成年月日]の
新しさを比較し、
UPDATEを行っておりますので、『重複を考慮する』はされていると思っており
ますが
認識はあっておりますでしょうか?


「FromTimeに前回取得年を入れて再セットアップ」を複数回行っていた際に、
「予期せぬエラー」が発生した場合の対処(中断/再開以外)も伺いたかった
のですが、
別記事として、他に記載致します。


お手数をおかけいたしますが、ご回答頂ければ幸いです。

タイトルRe^2: セットアップ完了済データにDELETE文を使用
記事No5234
投稿日: 2023/09/22(Fri) 20:29
投稿者まさ
申し訳ございません。

もう一点だけ追加させてください。


【質問4】
最初の年度から、一か月、1つのデータ種別で
取り込み処理を行った場合、
最後の処理としては、
@ 残りのデータが一か月に満たなくなったら、
  各データ種別で、「fromtime」に終了ポイント時刻無しで
 「3:セットアップ」を実行
A 一番最後に、「TOKU、DIFN、HOSN、HOYU、COMM」を
 「fromtime」に「19000101000000」を指定し、
「3:セットアップ」を実行
 
でよろしかったでしょうか?

終了ポイント時刻無しのデータは、
一番最後に「3:セットアップ」であるか否かの再確認となります。

タイトルRe^3: セットアップ完了済データにDELETE文を使用
記事No5241
投稿日: 2023/09/27(Wed) 09:43
投稿者JRA-VANソフトサポート
JRA-VANソフトサポート 三木です。
DataLab.サービスをご利用頂きまして誠にありがとうございます。

> 【質問1】
> 「3:セットアップ」を1項目を1か月単位で考えておりますが、
> 以下の形で「FromTime」で問題ないかと思いますが、
> よろしかったでしょうか?
> @「20230101000000-20230199000000」
> A「20230201000000-20230299000000」

上記の設定で問題ないかと思います。

> 【質問2】
> 「3:セットアップ」を再作成した段階で、1と2が除外される
> という事ですので、
> 2と3が同時にくるケースは、「3:セットアップ」ではなく、
> 「通常データ取得」であれば、2と3が同時にくるケースは
> あるという認識であっておりますでしょうか?
> 毎月、「3:セットアップ」を取得するとして、
> 例としてあげますと、
> @ 2023年1月取得分 [新規] 2023年1月20日東京5R
> A 2023年2月取得分 [訂正後] 2023年1月20日東京5R
> となるかと思います。

ご認識通りとなります。
キー重複を考慮していただければ問題ございません。

> 【質問3】
> 今回、『JV-Data登録クラス』を参考にして、取り込み処理を
> 作成しております。
> 『JV-Data登録クラス』は、[主キー]のデータがあれば、
> [データ作成年月日]の新しさを比較し、
> UPDATEを行っておりますので、『重複を考慮する』はされている
> と思っておりますが
> 認識はあっておりますでしょうか?

ご認識通りとなります。
更新することで回避可能かと思われます。


> 【質問4】
> 最初の年度から、一か月、1つのデータ種別で
> 取り込み処理を行った場合、
> 最後の処理としては、
> @ 残りのデータが一か月に満たなくなったら、
>   各データ種別で、「fromtime」に終了ポイント時刻無しで
>  「3:セットアップ」を実行
> A 一番最後に、「TOKU、DIFN、HOSN、HOYU、COMM」を
>  「fromtime」に「19000101000000」を指定し、
> 「3:セットアップ」を実行
> でよろしかったでしょうか?

上記で問題ないかと思います。
セットアップデータ取得の最後は必ず終了ポイント時刻無し
で取得を行うことで、マスタデータも取得可能となります

どうぞよろしくお願いいたします。

タイトルRe^4: セットアップ完了済データにDELETE文を使用
記事No5242
投稿日: 2023/09/28(Thu) 22:47
投稿者まさ
ご回答頂きまして、ありがとうございました。

伺った条件で、試してみます

ウィンドウを閉じる