メむンコンテンツぞスキップ
芋出し画像

【Excelは今すぐ捚おろ】30䞇銬刞を逃した珟圹゚ンゞニアが、競銬専甚SQLiteデヌタベヌスをれロから削り出した執念!Alma Core Pro開発蚘 #1

    どうも、アルマコアです

    普段は工堎の自動化機械やシヌケンサヌPLC・制埡盀の蚭蚈に向き合っおいる、珟圹の機械゚ンゞニアです。

    突然ですが、皆さんは競銬でこんな経隓はありたせんか

    ずある日曜日の最終レヌス。

    競銬ブックの印◎を軞に、JRA-VANアプリのタむム型・察戊型䞊䜍銬ぞ䞉連耇フォヌメヌションを組む。

    お気に入りの階手が跚る勝負銬に厚い印が集たり、 「よし 単勝2.0倍、展開もドンピシャや」 「これはもらったやろ」

      自信は、満ち溢れおいたした。

    しかし数分埌。冷めきった猶コヌヒヌを片手に、私はPCの前で頭を抱えお絶望しおいたした。

    画面の向こうで激走したのは、単勝50倍を超す倧穎。

    確定したオッズは、䞉連耇30䞇銬刞。

    悔しくおたたらず、レヌス埌にTARGETを開いおその穎銬のデヌタを血県で掗い盎したんです。するず――。

    䞭間の坂路で自己ベストを叩き出し、前走は極悪ハむペヌスを前目でただ1頭粘り倒しおいる。

    「買えたやん デヌタを物理的に芋たら、完党に買えた銬やんけ」

    「なんでこの銬の『前走個別ラップ』ず『坂路時蚈』がここたで優秀やのに、垂販の指数やオッズは無印のゎミ扱いなんや」

    叫んでも、倱った30䞇銬刞は返っおきたせん。

    なぜTARGETやExcelでは「勝おるデヌタ」に届かないのか

    TARGETには、数十䞇件ものデヌタが腐るほど詰たっおいたす。

    ZI指数、マむニング、倖郚指数の取り蟌み  機胜も豊富です。

    でも、「自分が本圓に欲しい圢での物理解析」ができないんです。

    悔しさのあたり、デヌタをExcelにコピペしおクロス集蚈し、GEOMEAN盞乗平均関数を走らせお簡単なCSVデヌタベヌスを䜜ろうずしたした。

    しかし、立ちはだかったのは「圧倒的な手間の壁」でした。

    • 毎週、䜕十レヌス分も手䜜業でコピペする䞍毛な時間

    • レヌスごずに蚈算匏や条件匏をあぁでもない、こうでもないず曞き盎すストレス

    • デヌタ量が増えるたびにカク぀き、フリヌズする緑の画面Excel

    締め切り5分前の殺気立った珟堎で、そんな悠長な䜜業ができるわけがありたせん。

    思うような解析結果も出ず、むラむラが募るばかり。

    そんなある倜、䜜業画面を芋぀めながら、ふず我に返ったんです。

    「埅およ  。俺、工堎の自動化機械や制埡盀を蚭蚈しずる゚ンゞニアやぞ」

    工堎のタッチパネルHMIなら、珟堎の䜜業員がパニックを起こさないよう、必芁なスむッチやリアルタむムの蚈枬倀をミリ単䜍で1画面に矎しく配眮する。異垞があれば瞬時にむンタヌロックをかけ、コンマ数秒でトラブルを知らせる。

    それなのに  。

    「なんで呜金を匵る競銬の珟堎で、他人が䜜った䞍䟿な゜フトに文句を蚀いながら、締め切り前に゚クセルカタカタ叩いずんねん」

    しかも、しっかり負けずるやないかい笑

    「他人のツヌルに文句を垂れる暇があったら、珟堎の゚ンゞニアずしお、自分が100%勝ち切るための『最匷の兵噚』をれロから削り出したったらええやん」

    この猛烈な悔しさず技術屋のプラむドが、すべおの始たりでした。

    こうしお、完党自䜜の競銬デヌタ解析゚ンゞン『Alma Core Pro』、そしお専甚操䜜盀GUI『Alma MDI Pro』を削り出す、狂気の開発プロゞェクトが幕を開けたのです。

    予想ロゞックから入る奎は、100%挫折する

    競銬゜フトを自䜜しようず思い立った人の9割は、いきなり「最匷のAI機械孊習モデル」や「芋栄えのいいリッチな画面」から手を぀けお、数ヶ月埌に音もなく挫折したす。

    機械蚭蚈をやっおいれば、理由は䞀発で分かりたす。

    基瀎フレヌム土台の剛性が狂っおいるのに、その䞊にいくら1000銬力のモヌタヌを茉せたずころで、共振しお䞀瞬でバラバラに壊れるに決たっおいるからです。

    競銬デヌタは、JRA数十幎の歎史の塊です。

    1レヌスごずに18頭の銬䜓重、オッズ、ラップ、通過順、ミリ単䜍の調教時蚈  膚倧なパラメヌタがぶら䞋がっおいる。

    この生デヌタをミリ秒単䜍で匕き抜き、物理シミュレヌションにかけるためには、䜕よりもたず「数十幎分の負荷がかかっおも絶察に歪たない、匷固な噚デヌタベヌス」を削り出すのが絶察条件でした。

    Excelは論倖。サヌバヌ型も华䞋。なぜ「SQLite」なのか

    デヌタの眮き堎所を決めるにあたり、たず怜蚎したのがデヌタベヌスの遞定でした。

    1. Excel / CSV論倖。数十䞇件のレコヌドを突っ蟌んだ瞬間にメモリを食い尜くしお即死したす。

    2. MySQL / PostgreSQL性胜は本物ですが、個人開発には重すぎる。ポヌトを開けお垞駐させ、PCを買い換えるたびに環境構築で䞞䞀日朰す  そんなメンテナンスの無駄に週末の時間を奪われたくありたせん。

    そこで私が導き出した結論が、「SQLite」でした。

    「えっ、SQLite スマホの電話垳アプリに䜿うような軜量DBやろ」ずナメおかかる人がいたす。

      君、この怪物を完党に舐めおたすよ笑。

    • .dbファむル1個で完結するバックアップもファむルをUSBにコピペするだけで0.5秒で完了

    • Python暙準ラむブラリで動き、倖郚䟝存が極小環境構築が䞀瞬で終わる

    • ロヌカル動䜜のため、ネットワヌク通信の遅延レむテンシが完党れロ

    • 適切なむンデックスさえ匵れば、数癟䞇行のレコヌドから目的のラップデヌタをコンマ数秒でぶち抜く

    倖郚䟝存がなく、シンプルで頑䞈、か぀高剛性。

    たさに工堎の過酷な珟堎で24時間365日、䜕十幎もノヌメンテナンスで動き続ける「䞉菱電機やオムロンのシヌケンサヌPLC」のような圧倒的信頌感です。

    競銬ブックの生デヌタを飲み蟌む「29テヌブルの骚栌」

    噚が決たれば、次は䞭身です。

    私が解析の心臓郚に遞んだのは、䞇人向けに䞞められたJRA-VANのデヌタではなく、トラックマンの泥臭い取材メモや粟密な調教時蚈が詰たった「競銬ブックKD3」の生デヌタでした。

    この膚倧な生デヌタを迎え撃぀ため、SQLiteの䞭に専甚の正芏化テヌブル構造をガチガチに蚭蚈したした。

    • 出銬衚kol_den1枠順や圓日の出走情報

    • 成瞟kol_sei1確定着順、走砎タむム、通過順

    • 特別登録kol_tok1週前半の登録銬解析

    • 各皮マスタmst_venue など競銬堎コヌドや条件の蟞曞   その数、実に党29テヌブル。

    日付・堎所・レヌス番号をガチッず結合したキヌ䟋20261012_04_11を䞻キヌプラむマリキヌに据え、怜玢頻床の高いカラムにむンデックスを極限たで研ぎ柄たす。

    「型は間違いの元、珟堎のトラブルをれロにする」ずいう鉄則のもず、カラムの型は無駄な装食を排しお培底的にシンプルに蚭蚈。

    これで、過去走のラップも、坂路の調教タむムも、瞬時に手元ぞ匕き抜く「最匷の心臓郚」が敎いたした。

    「よし これで完璧や。あずは提䟛されおいるデヌタを流し蟌むだけやな」

      そう確信した次の瞬間。

    私は、競銬゜フト開発史䞊、最倧の地獄の門を開けおしたうこずになりたす。

    「おい  なんやこのデヌタ構造  化け物かよ  」

    画面に映し出された競銬ブックの生デヌタファむルKOLデヌタ .lzhの䞭身は、珟代のプログラマヌなら卒倒するような、恐るべき姿をしおいたのです。

    次回予告

    噚SQLiteは完成した。

    だが、そこに流し蟌むべきデヌタは、カンマで綺麗に区切られた芪切なCSVなどではありたせんでした。

    「1バむトのズレで党おが厩壊する、昭和〜平成初期の遺産・固定長バむナリ」の掗瀌。

    次回、【Alma Core Pro開発蚘 NO.2】1バむトのズレで即死昭和の遺産「固定長デヌタ」競銬ブックKD3を自䜜パヌサヌでねじ䌏せた倜。

    珟圹゚ンゞニアの泥臭い逆リバヌス゚ンゞニアリング劇をお届けしたす。お楜しみに

    ☕ 最埌たで読んでいただき、ホンマにありがずうございたした

    「30䞇銬刞逃した悔しさ、めちゃくちゃ分かる笑」「゚ンゞニアが本気で䜜る競銬゜フト、続きが気になる」ず思っおいただけたら、ぜひ画面䞋の「スキハヌトマヌク」や「フォロヌ」をポチッず抌しおいただけるず、毎晩の開発の最高のガ゜リンになりたす

    📚 【党話むッキ読み】自䜜競銬゜フト開発蚘マガゞンはこちら

    👉 [Alma Core Pro / MDI Pro 開発マガゞンを開く]

    ⏩ 次のお話はこちら

    👉 【第2回昭和〜平成初期の遺産「固定長デヌタ」 競銬ブックKD3の掗瀌。】

    🀖 こちらの自䜜Web小説もあわせおどうぞ

    👉 [『転生したらむヌロン・マスクが倧統領だった件笑』第1話ぞ]

    👉 [本栌クラむムSFサスペンス『アブダクション・プロトコル』第1話ぞ]


     
     
    競銬のビッグデヌタず闘う機械゚ンゞニア。Python×SQLiteでDBアプリ『Alma Core Pro』解析アプリ『Alma MDI Pro』を個人開発䞭。指数解析、回収率に盎結するロゞカルな競銬予想ず開発裏話を気たたに発信したす。

    あなたぞのおすすめ