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

JRA-VAN DataLab.

競馬ソフト開発コーナー

JV-Dataの使い方あれこれ

一括表示 リストに戻る
タイトルデータベースへの取り込み条件について
記事No5279
投稿日: 2024/04/13(Sat) 16:05
投稿者tana
JRA-VAN DataLab.SDK開発ガイド
P24 3.3.5 データベースへの取り込み
のフロチャートの質問なのですが、

データベース側作成日<=取込みレコード作成日
でUPDATEとなっていますが

"<=" ではなく "<" ではないでしょうか。
=の時は作成日が同じなのでUpdateする必要が無いようにに思うのですが、

=でもあとからJVReadから取得されるデータの方が新しいデータ
ということなのでしょうか?

作成日が同じでも値が違うとこがあるのでしょうか。

タイトルRe: データベースへの取り込み条件について
記事No5280
投稿日: 2024/04/14(Sun) 12:48
投稿者サメの餌
tanaさん、こんにちは。

公式からの回答もあるとは思いますが、例えばオッズとかは同日でも更新され
る事ありますし、他のデータでも当日変更とかあるものがあります。

タイトルRe^2: データベースへの取り込み条件について
記事No5281
投稿日: 2024/04/14(Sun) 22:14
投稿者tana
> tanaさん、こんにちは。
>
> 公式からの回答もあるとは思いますが、例えばオッズとかは同日でも更新
され
> る事ありますし、他のデータでも当日変更とかあるものがあります。

サメの餌さん 
回答ありがとうございます。
オッズは当日更新されますよね。
マニュアルには取得されるデータは時系列とは限らないと
書いてあると認識したのですが。。。
速報系はあとから取得されたものが最新でオッズは更新してよいと言う事でし
ょうか。
速報 → 蓄積
蓄積 → 速報
の場合で取得する順序によって更新するか否かはどの様に判断すれば良いので
しょうか
作成年月日のほかに更新時間やシーケンス番号のようなものがありそれより大
きければ
更新というのがあると良いのですが。

タイトルRe^3: データベースへの取り込み条件について
記事No5282
投稿日: 2024/04/15(Mon) 07:30
投稿者サメの餌
tanaさん、おはようございます。

> マニュアルには取得されるデータは時系列とは限らないと

これってJRA-VAN Data Lab.開発ガイド(Ver.4.2.2)での記載の"原則とし
てJV−Linkはレコード種別ごとに提供日順にファイルを読み出しますが、
データの作成時刻順に並んでいるとはかぎりません。"の部分を言ってるん
だと思いますが、この説明の上でフローチャートがありますのでユーザーとして
はJV-Linkから作成年月日が同一ならUPATEで問題無くデータの整合性が取れると
信じるしかないのでは?

> 書いてあると認識したのですが。。。
> 速報系はあとから取得されたものが最新でオッズは更新してよいと言う事
でし
> ょうか。
> 速報 → 蓄積
> 蓄積 → 速報
> の場合で取得する順序によって更新するか否かはどの様に判断すれば良い
ので
> しょうか

開催日当日に蓄積系で当日のオッズは飛んできません。オッズ以外にはレース
詳細(RA)とか蓄積で飛んできて速報でも更新された内容が飛んでくるものに対し
てその後再度蓄積系の取得を試みてもJVOpenで渡すfromtimeがきちんと管理され
ていれば飛んでこないはずです。

ご指摘内容を理解出来てなくて的外れな事を言ってたらごめんなさい。

タイトルRe^4: データベースへの取り込み条件について
記事No5283
投稿日: 2024/04/19(Fri) 09:36
投稿者JRA-VANソフトサポート
JRA-VANソフトサポートの鷹森です。
DataLab.サービスをご利用頂きまして誠にありがとうございます。

> JRA-VAN DataLab.SDK開発ガイド
> P24 3.3.5 データベースへの取り込み
> のフロチャートの質問なのですが、
>
> データベース側作成日<=取込みレコード作成日
> でUPDATEとなっていますが
>
> "<=" ではなく "<" ではないでしょうか。
> =の時は作成日が同じなのでUpdateする必要が無いようにに思うのですが

>
> =でもあとからJVReadから取得されるデータの方が新しいデータ
> ということなのでしょうか?
>
> 作成日が同じでも値が違うとこがあるのでしょうか

通常、同日に同じ主キーのレコード行が複数提供されることは
ありません。運用上、そのような提供にならないよう考慮し作業を
行っております。
例外として、データに誤りがある場合にこのレコードを更新する
ために、同日に同じ主キーのレコード行を提供する場合があります。
この場合、必ず後のレコード行が最新のデータとなります。
このようなことの無いように、データの内容については確認を行った
上で提供をしておりますが、万が一の場合には上記のような提供に
なります。

> マニュアルには取得されるデータは時系列とは限らないと
> 書いてあると認識したのですが。。。
> 速報系はあとから取得されたものが最新でオッズは更新してよいと言う事
でし
> ょうか。

「レコード単位に完全な時系列順を保証していません」という記述は、
主キーが異なるデータの順序を指しており、
例えば開催場の並びや1Rから12Rまでの並びが時系列順とは
限らないため記述しております。
同じ主キーの場合は、必ず後のデータが最新となる仕様です。

以上、よろしくお願いいたします。

タイトルRe^5: データベースへの取り込み条件について
記事No5284
投稿日: 2024/04/19(Fri) 13:36
投稿者tana
ご回答ありがとうございます。

>例外として、データに誤りがある場合にこのレコードを更新する
>ために、同日に同じ主キーのレコード行を提供する場合があります。

DBのテーブルを何度もfromtimetotimeを使わず同じデータで
更新したとしてもテーブルが正しく作成される様にテスト
しています。

その場合"<="なのでUpdateするために時間がかかるため、
"<=" ではなく "<"としたいのですが、
例外のために "<="としなければならないのですね。

承知しました。
fromtimetotimeで管理し"<="とたいと思います。


>「レコード単位に完全な時系列順を保証していません」

・同一Keyの場合は時系列を保持している点承知しました。
・マニュアルの意味は主キーが異なるデータの順序の事を記述している点も承
知しました。




サメの餌様、JRA-VANソフトサポートの鷹森様
ご回答いただきありがとうございました。

タイトルRe^5: データベースへの取り込み条件について
記事No5285
投稿日: 2024/04/21(Sun) 10:59
投稿者サメの餌
お世話になっております。

> 同じ主キーの場合は、必ず後のデータが最新となる仕様です。

これって重要な話ですね。なんとなく作成年月日を確認してからUPDATEな気が
してましたがこの作業が大きなロスタイムになるんです。これ不要になるならス
ムーズなプロセスになり、単にUPSERTで済むので開発ガイド24Pのフローチャー
トの分岐無しにJVRead→UPSERT→JVRead的に回せるので高速に処理可能ですね。

まあ、元々自分のアプリではそうしてましたけど^^;

ウィンドウを閉じる