
åè¶³æ ªäŸ¡ããŒã¿ããŒã¹ãäœæ ïœMySQLã§DBå æ ªåŒåå²/çµ±å å®å šèªåèšç®ïœ
ããã«ã¡ã¯Rcatã§ãã
ããŠããã®é£äŒã§ãã£ãšããããããšã«æãã€ãããããã§ãã
æå§ãã«ããŸãã¯ä»¥äžã§ç޹ä»ããŠããæ¹æ³ã§ååŸããããŒã¿ã®å å·¥ãè¡ã£ãŠãããŸããåæãªã®ã§ãŸã ã®æ¹ã¯ãã¡ããå
ã«ã芧ãã ããã
ã¯ããã«
å©çšèŠçŽ
æ å ±ãäœåã®æŽ»çšæã¯äºåã«å©çšèŠçŽãã確èªãã ããã
ã³ã¡ã³ãã«ã€ããŠ
å©çšèŠçŽã®ã¬ã€ãã©ã€ã³ã確èªã®äžã³ã¡ã³ãããŠãã ãã
æŠèŠ
ä»åäœãããããšèšããšããŸãã¯ããŒã¿ã®æŽåæ§ãã§ãã¯ã§ãã
äžèšã®ããŒã«ã¯æ¥ã
æ ªäŸ¡ã®ããŒã¿ãåéããããã®ããŒã«ã§ãããåéããããšã¯ã§ããŠããããç·šéããæ©èœã¯ãããŸããã
äœãåé¡ã«ãªãããšèšããšæ ªåŒåå²ã§ããæ ªåŒåå²ãè¡ããããšæ¥ã«æ ªäŸ¡ãå€åããŸãã
蚌åžäŒç€ŸããååŸããæç¹ã®æ
å ±ã¯èªåçã«æé©åãããŸãããèªåã®ãšããã«ããããŒã¿ã¯ããã§ã¯ãããŸããã
ãšããããã§ãä»åã¯èªåçã«æ ªåŒåå²ãæ€åºããèªåã§æé©åãŸã§ãè¡ã£ãŠããããšæããŸãã
äºåæºå
DBåãã
äžèšã®ããŒã«ã§ã¯CSVãšããŠååŸããã®ãåæã§ãããä»åŸå©çšããã«ãããããŒã¿ããŒã¹ã«ããæ¹ãæ±ãããããšæãã®ã§ããŸãã¯ããŒã¿ããŒã¹ã«ç§»åããŠããŸããŸãã
â»æè»œã«CSVããããšããæ¹ããããšæããŸãã®ã§ãä»åŸãåè¶³ã®ååŸã¯CSVãç¶ç¶ããŸããååŸâã¢ããããŒããšããæé ã«ããŸãã
ããŒã¿ããŒã¹ã£ãŠ?
ä»åã®è©±ã¯ããã°ã©ãã³ã°è²ã匷ãããã§ã¯ãªãã®ã§ãããããé¢é£ã¯å šããšããæ¹ããããšæããŸãã®ã§ãç°¡åã«èª¬æããŸãã
ä»å䜿çšããã®ã¯MySQLãšããããŒã¿ããŒã¹ã§ããçš®é¡ã¯é¢ä¿ããŒã¿ããŒã¹ãšãªããŸãã
é¢ä¿ããŒã¿ããŒã¹ã¯ç°¡åã«èšãã°CSVã®è¡šãå
¥ã£ãŠããããŒã¿ããŒã¹ã§ãã倧ããªç®±ã®äžã«ããããã®è¡šãå
¥ã£ãŠããã ãã§ãããªã®ã§ãã€ã¡ãŒãžãšããŠã¯ãããªã«é£ãããã®ã§ã¯ãããŸããã
倧æ ãšããŠã¯ããµãŒããŒã®äžã«è€æ°ã®ããŒã¿ããŒã¹ãããããã®äžã«CSVãã¡ã€ã«ã®ãããªããŒãã«ãããããäœãããšãããã®ã§ãã
ä»åã¯å°çšã®ããŒã¿ããŒã¹ã1ã€ãšåéæããšã«ããŒãã«ãäœããŸãã

ä»åããŒã¿ããŒã¹åããçç±ãšããŠã¯ããŒã¿ãåãåºãæã«ãããŠåŠçãæ¥œã ããã§ãã
çŸæç¹ã§ã¯æ¥ä»ããšã§ããŒã¿ãåãããŠããŸãããã§ã¯ããéæã®æå€§æ ªäŸ¡ãåºåããããšãªã£ãå Žåã©ãããã°ããã§ããããïŒ
å
šãŠã®ãã¡ã€ã«ãéããŠäžçªå€§ããå€ãæ¢ããªãããããªãã§ããã
ãããããããããŒã¿ããŒã¹ã ãšäžçºã§åºãããšãã§ããŸãã
ä»ã«ãå¥ã®è¶³ããŒã¿ãæ··ãã£ãŠæ ŒçŽããŠãããããããã¯è¡ãé転ããŠããŸã£ãŠãããšããŠãã"ç¯å²ãæå®ããŠæ¥ä»é ã§ãã ãã"ãšããã ãã§äžŠãã§è¿ã£ãŠããã®ã§ãè¡šã®æ±ããéåžžã«æ¥œã«ãªããŸãã
ãŸãããã®åŸã®ã¡ã€ã³ã³ã³ãã³ãã«ãªããŸãããæ ªåŒåå²ã«ããæ ªäŸ¡ãå šãŠååã«ãããå Žåã¯è¡ããšã«æŽæ°äœæ¥ãå¿ èŠã§ãããããŒã¿ããŒã¹ãªããã£ãæ°åæåæã¡èŸŒãã§ãšã³ã¿ãŒããã ãã§ã¢ããããŒãã§ããŸãã
ãããã£ãçç±ãããããããå ã¯CSVãã¡ã€ã«ãçŽæ¥æ±ãã®ã§ã¯ãªããããŒã¿ããŒã¹ãšé£æºããåæãšããŸãã
DBäºåæºå
MySQLå°å ¥ãåæãªã®ã§ããŸã ã®æ¹ã¯äžèšã«ãŠWindowsãŸãã¯Linuxã«å°å ¥ããŸãããã
Windowsã®å Žå
ãã¡ããåèã«ããŸãããå€ãèšäºã¿ããã§ãããç»é¢ã»ãŒåããªã®ã§åé¡ãªãé²ããããŸããã
ããŠã³ããŒãã¯ãã¡ã
https://dev.mysql.com/downloads/mysql/
ãµãŒããŒãããŠã³ããŒãããããã€ã³ã¹ããŒã«å (äŸ: C:\Program Files\MySQL\MySQL Server 9.3\bin)ãç°å¢å€æ°PATHã«è¿œå ããŠãããã³ãã³ãããã³ããã§ã¢ã¯ã»ã¹ããŸãã

ããŒã¿ããŒã¹ã¯å¿
ãäœããªããšãããªãã®ã§ã2è¡ç®ã ãã¯å®è¡ããŠãã ããã
rootã䜿ããããªãå Žåã¯ä»¥äžã®ããã«è¿œå ã§ãŠãŒã¶ãŒãäœããŸãããã
ãŠãŒã¶ãŒãäœã£ããã¢ã¯ã»ã¹æš©ãå¿
èŠãªã®ã§ä»äžããŠãã ããã
C:\Users\Rcat>mysql -u root -p
Enter password: **************
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 9.3.0 MySQL Community Server - GPL
Copyright (c) 2000, 2025, Oracle and/or its affiliates.
mysql> CREATE USER "remote"@"localhost" IDENTIFIED BY "ãã¹ã¯ãŒã";
mysql> create database StocksDB;
mysql> GRANT ALL PRIVILEGES ON StocksDB.* TO 'remote'@"localhost";Linuxã®å Žå
ã¡ãªã¿ã«ä»åã¯ãªã¢ãŒãã®Linuxã䜿ããŸãã
ãªã¢ãŒããŠãŒã¶ãŒã®äœãæ¹ã¯ãã¡ãã
Windowsãšåãããã«ããŒã¿ããŒã¹ã®äœæãè¡ããŸãã
$mysql -u root -p
mysql>CREATE USER 'remote'@'192.168.0.%' IDENTIFIED BY 'ã±ãããŒã©â';
mysql>create database StocksDB;
mysql>GRANT ALL PRIVILEGES ON StocksDB.* TO 'remote'@'192.168.0.%';æåŸã®IPã¢ãã¬ã¹ã¯åã
人ã®ç°å¢ã«ãã£ãããŒã«ã«IPã¢ãã¬ã¹ã«å¯Ÿå¿ãããªããšãã°ã€ã³ã§ããªãã®ã§æ³šæã
äœã£ããDBã«ã¢ã¯ã»ã¹æš©ãä»äžããŸããä»åã¯å°çšã®ãäœããã®ãã¹ãŠã®æš©éãæãããŸãã
ã¢ããããŒãçšã³ãŒã
â»ç°¡åãªèšå®ã ãã§ç§»è¡ã§ããããŒã«ãé åžããŸãããã®ã»ã¯ã·ã§ã³ã®èª¬æã¯ããããªããã°èŠãªããŠã倧äžå€«ã§ãã
ãŸããDBã®ããŒãã«ã¯ãããªæãã«ããŸãã
ãã¡ãèŠãŠãããéããCSVãã¡ã€ã«ãšã»ãŒåããšããããšãåããã§ãããã
ãªãã1ã€ã®è¡šã§1ã€ã®éæã衚ããå
šãŠã®è¶³ããŸãšããŠããŒãã«ïŒè¡šïŒã«å
¥ããŠããŸããŸãã
ãããªãããšèšããšãåãåºãæã«äžçªå·ŠåŽã®"kindã1Mã§"ãšæå®ããã°ããã ãã§1åè¶³ã ããåºããšãã£ãããšãã§ããã®ã§ããããã衚ãåããå¿
èŠããªããªã£ãŠããã®ã§ãã

ã¡ãªã¿ã«ããã人ã«ã ãã«ãªããŸããããã®è¡šã¯çš®é¡ãšæ¥ä»ã®è€åäž»ããŒã§ãããŸããåºæ¬çã«ã¯æ¥ä»ã§ç®¡çããã®ã§ã€ã³ããã¯ã¹ãæ¥ä»ã«ãªã£ãŠãŸãã
äžèº«ã確èªããã«ã¯MySQL Workbenchã䜿ããšèŠãããã§ãã
ã¢ããããŒãã¯ãããªæã
DBããŒãã«ã®æ¥ä»ããæ°ããCSVæ¢ããŠãããã°ã¢ããããŒãã
ããŒã¿ããŒã¹ã¯ã²ãšã€ã§ãããŒãã«ã®ååã"Stock_蚌åžã³ãŒã"ãšããååã«ããŠããŸãã

ã¢ããããŒããããšãããªæãã«ãªããŸãã

䜿ããªãå Žåã¯ãããªæãã§çŽæ¥SQLãæã¡èŸŒã¿ãŸãã
$ mysql -u root -p
mysql> use StocksDB
Database changed
mysql> show tables;
+--------------------+
| Tables_in_StocksDB |
+--------------------+
| Stock_1XXX |
| Stock_1XXX |
| Stock_1XXX |
| Stock_1XXX |
| Stock_1XXX |
| Stock_1XXX |
...æ ªåŒåå²ãæ€ç¥ãã
ããŒã¿ããŒã¹åãçµãã£ãããæ¬¡ã«åå²ãæ€ç¥ããŸãã
ããã¯åçŽãªä»çµã¿ã§ãå€ããã®ããèŠãŠãããçµå€ãšéå§å€ãäžå®ä»¥äžã®éããããå Žåã«åå²ã䜵åãçããŸãã
ãã ããã¹ãããå®ãã¹ãããé«ã§ããªãã®å€åãèµ·ããããšããããããæ¥ãªå€åãåå²ãªã®ãã©ãã確èªããå¿ èŠããããŸãã
ãã¡ãã¡èªåã§ç¢ºèªããŸãã?
No! ä»ã¯AIã®æä»£ã§ããAIã«æ€çŽ¢ãããŠäœåå²ã ã£ããã®æ°å€ãŸã§çããããŸããã!
Googleæ€çŽ¢ãšAIã§åå²ãèªåååŸ
æ ªåŒåå²ãããå€åãèŠã€ãããããããäœåå²ãªã®ããæ£ç¢ºã«ååŸããå¿ èŠããããããä»åã¯Google GeminiãšGoogleæ€çŽ¢ãçµã¿åãããŠèªåæ€çŽ¢ãè¡ããŸãã
åæãšããŠãGeminiã®APIãã³ãŒã«ããããã®APIããŒããããŸãã
äžèšã§ååŸæ¹æ³ã解説ããŠããã®ã§åèã«ããŠãã ããã
â»ä»åã¯äžèšã§ç޹ä»ããŠãã"Dify"ã¯å°å
¥ããŸããã
â»ãã®å ã®ã³ãŒãã®éšåã¯ç¥ããã人ã®ããã®æ å ±ãªã®ã§æ°ã«ããªããŠã倧äžå€«ã§ããå¿ èŠãªã®ã¯ããŒã ãã§ãã
Geminiã§Googleæ€çŽ¢ãçµã¿åãããã³ãŒãã¯ä»¥äž
#ã©ã€ãã©ãªã®ã€ã³ã¹ããŒã«
$pip install google-genaiAIãåŒã³åºãã³ãŒãã¯ä»¥äž
from google import genai
from google.genai.types import Tool, GenerateContentConfig, GoogleSearch
client = genai.Client(api_key="Geminiã®APIããŒ")
google_search_tool = Tool(google_search = GoogleSearch())
response = client.models.generate_content(
model="gemini-2.0-flash",
contents="ããã«ããã³ãããæžã",
config=GenerateContentConfig(
tools=[google_search_tool],
response_modalities=["TEXT"],
)
)ã»ã»ã»è¶
ç°¡åã§ããã
ãªããéè² è·çã§ãšã©ãŒã«ãªãããšãããã®ã§é©å®ãªãã©ã€å¿
é ã䜿çšå¶éã¯äžæ¥1500åã§ãã
åŸã¯AIã«å¯Ÿããæç€ºãèããŠæçš¿ããã°OKã
ã¡ãªã¿ã«çŸç¶ã®ããã³ããã¯ãããªæããã»ãŒã¢ã¶ã€ã¯ã§ããwã詳现ã¯ããŒã¿DLã«ãŠç¢ºèªããŠãã ããã

èªåã§åå²ããŒã¿ãé©çš
DBãšAIã®æºåãåºæ¥ããããããåå²ã®æé©åã§ãã
ã³ãŒãååã¯ãããªæããäžããé æ¬¡èŠãŠãã£ãŠä¹é¢ã倧ããè¡ãæ€åºããããäžçªè§£å床ã®é«ãããŒã¿ã代衚ã§AIã«æããæãã§ããã

AIããããæ€çŽ¢ããŠãåå²ã ãšå€æãããšãäœåå²ãçãè¿ããŠããã®ã§ãããã䜿ã£ãŠæé©åãè¡ãã®ãåŸåã

æžãæãã¯ç°¡åã§ãSQLã«èšç®åŒãšå岿¥ä»¥åãšããæç€ºãæž¡ãã ããDBæé«ã
é©çšãããä»çµã¿ãåãããããããã«æç¶ãã§æžããŸãã
äŸãã°4æããåå²ãããKDDIã®ããŒã¿ããã£ãã®ã§è©ŠããŸãã
åŒæ°ã«Trueãä»ãããšæåã§ç¢ºèªã§ããŸãã
>>> from DataBase import StockDBCheck
>>> s = StockDBCheck("remote","ã±ãããŒã©â","192.168.0.4")
>>> s.Check(9433,True,True)
2025-05-03 00:50:48,647 WARNING DataBase æ ªåŒåå²ãšæããã倧ããªæºãããæ€ç¥
2025-05-03 00:50:51,669 INFO DataBase æ ªåŒåå²ãæ€åº:2åå² çç±:2025幎3æ31æ¥ãåºæºæ¥ãšããŠ1æ ªã«ã€ã2æ ªã®å²åã§æ ªåŒåå²ã®æ
å ±æ
2025-05-03 00:50:51,669 INFO DataBase ååŸã®ããŒã¿ã¯4860.00 => 2430.00
倿Žãé©çšããŸãã?(y/n)y
2025-05-03 00:51:00,804 INFO DataBase é©çšäž:9433:1M
2025-05-03 00:51:01,044 INFO DataBase é©çšäž:9433:5M
2025-05-03 00:51:01,132 INFO DataBase é©çšäž:9433:10M
>>> s.Check(9433,True,True)
2025-05-03 00:52:28,254 INFO DataBase æ ªåŒåå²ãšæãããæºããã¯èŠã€ãããŸããã§ãã
Falseãã®äŸã§ã¯AIã2åå²ã§ãããšå€æããããã§ããååŸã®ããŒã¿ãèŠãŠããããããå€ã«ãªã£ãŠããŸããâ»èªåã§èŠãŠãããã§ããã
以äžã®äŸã§ã¯ç§ãåå²åæåŸã«ååŸããã¿ã€ãã³ã°ã14æ¥ã§ããã以éãåå²ã®äŸ¡æ Œã«ãªã£ãŠããã±ã£ãšèŠæ¥èœã«èŠããŸãã
ãããèªåã§åŠçãããšå³ã®ããã«ãªããŸãã

DBå&å岿é©åããŒã«ã®äœ¿ãæ¹
ããŠãäžã§ã¯ããã°ã©ã çãªè©±ãããŠããŸããŸããããããããã®ããããããªããšããæ¹ããããšæããŸãã®ã§ãããããã¯é åžããŒã«ã®äœ¿ãæ¹ã«çµã£ãŠè§£èª¬ããŸãã
æäžéšããããŒã¿ãDLãããšãäžèº«ã¯ä»¥äžã®ããã«ãªã£ãŠããŸãã
Pythonã®åæã§ãããåæããŒã«ã§Pythonã¯ã€ã³ã¹ããŒã«ããŠããã ããŠãã®ã§ãã®ãŸãŸå®è¡ã§ããã¯ãã§ãã

ããŒã«ã®èšå®ãæžãæãã
ãŸãã¯é
åžããŒã«(DataBase.py)ãããã¹ããšãã£ã(ã¡ã¢åž³ãªã©)ã§éããŠå
éšã®èšå®ãèªåçšã«å€æŽããŸãã
倿Žç¹ã¯äžèšã®éãã§å€§äœ150è¡ç®ãããã«ãããŸãã
èšå®ã®å 容ã«é¢ããŠã¯ãèªã¿é£ã°ããŠããå Žåã¯é©å®æ»ã£ãŠãã ããã
SQL_XXX
äžã§èª¬æããŠããããŒã¿ããŒã¹é¢é£ã®èšå®ã§ããGemini_Model
Geminiã®æšè«ã¢ãã«ã§ããçŸæç¹ã§ã¯ææ°ãªã®ã§ãã®ãŸãŸã§ããã§ãããä»åŸã¢ããããŒãã§ã¢ãã«ãå€ãã£ãå Žåã¯å€æŽãå¿ èŠã§ãã
â»APIã«ç»é²ããŠããã°ã¢ãã«ã®ãµãŒãã¹çµäºãªã©ã¯ã¡ãŒã«ãæ¥ãŸãGemini_APIKEY
Geminiã®APIããŒã§ããèªåã§ååŸããå¿ èŠããããŸãã詳ããã¯äžã§èª¬æããŠããŸããCSV_RootDir
ãšã¯ã»ã«ã®ããŒã«ã§åéããCSVãã¡ã€ã«ããããã©ã«ããåå人ã®ç°å¢ã«åãããŠæžãæãããå é ã®"r"ãééã£ãŠæ¶ããªãããã«æ³šæã

ç·šéãå®äºããããæ¯è»ã®startãããã«ã¯ãªãã¯ããŠå®è¡ããŸããååã¯ç°å¢æ§ç¯ãå ¥ãã®ã§å°ãæéãããããŸãã
æåã«å
šããŒã¿ã®DBåãè¡ãããŸãã
ç»é²ãšã³ããªã1è¡ãã€ãªã®ã§ãéã«ãã£ãŠã¯1éæ1å以äžãããå ŽåããããŸãã100éæã§1æé以äžããããŸãâŠã
ç»é²ãçµãããšãåå²ã®ãã§ãã¯ã«å
¥ããŸããããã©ã«ãã§ã¯åŠçåã«ç¢ºèªã®ã¡ãã»ãŒãžãå
¥ããŸãã®ã§ãy/nãå
¥åããŠç¢ºå®ããŸãããã¡ãã¯ããçµãããŸãã
åå²ãšå€æ®µããåŠ¥åœæ§ãæ€èšŒããŠãè¯ãã§ãããèªåã§èª¿ã¹ãªãããŠãè¯ãã§ãããã¡ããAIãä¿¡ããŠããŒãã§ãã¯ã§ãâŠã
ãŸãé »ç¹ã«èµ·ããããšã§ã¯ãªãã®ã§æã§ç¢ºèªããŠãããã®ã§ã¯ãªãã§ããããã
INFO DataBase XXXX: æ ªåŒåå²ãšæãããæºããã¯èŠã€ãããŸããã§ãã
INFO DataBase XXXX: æ ªåŒåå²ãšæãããæºããã¯èŠã€ãããŸããã§ãã
INFO DataBase XXXX: æ ªåŒåå²ãšæãããæºããã¯èŠã€ãããŸããã§ãã
INFO DataBase XXXX: æ ªåŒåå²ãšæãããæºããã¯èŠã€ãããŸããã§ãã
INFO DataBase XXXX: æ ªåŒåå²ãšæãããæºããã¯èŠã€ãããŸããã§ãã
INFO DataBase XXXX: æ ªåŒåå²ãšæãããæºããã¯èŠã€ãããŸããã§ãã
INFO DataBase XXXX: æ ªåŒåå²ãšæãããæºããã¯èŠã€ãããŸããã§ãã
INFO DataBase XXXX: æ ªåŒåå²ãšæãããæºããã¯èŠã€ãããŸããã§ãã
INFO DataBase XXXX: æ ªåŒåå²ãšæãããæºããã¯èŠã€ãããŸããã§ãã
INFO DataBase XXXX: æ ªåŒåå²ãšæãããæºããã¯èŠã€ãããŸããã§ãã
INFO DataBase XXXX: æ ªåŒåå²ãšæãããæºããã¯èŠã€ãããŸããã§ãã
INFO DataBase XXXX: æ ªåŒåå²ãšæãããæºããã¯èŠã€ãããŸããã§ãã
WARNING DataBase XXXX æ ªåŒåå²ãšæããã倧ããªæºãããæ€ç¥
INFO DataBase æ ªåŒåå²ãæ€åº:15åå² çç±:XXXXã¯2025幎1æ23æ¥ãåºæºæ¥ãšããŠã1:15ã®æ ªåŒåå²ã宿œããŸããã
INFO DataBase ååŸã®ããŒã¿ã¯20690.00 => 1378.33
倿Žãé©çšããŸãã?(y/n)y
INFO DataBase é©çšäž:XXXX:1M
INFO DataBase é©çšäž:XXXX:5M
INFO DataBase é©çšäž:XXXX:10M
INFO DataBase XXXX: æ ªåŒåå²ãšæãããæºããã¯èŠã€ãããŸããã§ãã
INFO DataBase XXXX: æ ªåŒåå²ãšæãããæºããã¯èŠã€ãããŸããã§ãã
INFO DataBase XXXX: æ ªåŒåå²ãšæãããæºããã¯èŠã€ãããŸããã§ãã
INFO DataBase XXXX: æ ªåŒåå²ãšæãããæºããã¯èŠã€ãããŸããã§ãã
INFO DataBase XXXX: æ ªåŒåå²ãšæãããæºããã¯èŠã€ãããŸããã§ããé«åºŠãªæ å ±
æ¬ããŒã«ã¯åŒæ°ã§åäœãæå®ããããšãã§ããŸãã
start.batã®äžèº«ã以äžã§èµ·åããŠããŸãã
python "%SCRIPTNAME%" -m upload
python "%SCRIPTNAME%" -m check -cåŒæ°ã®å®çŸ©ã¯ä»¥äžã®éãã§ã

mode
åäœã¢ãŒããæå®ããŸãã
uploadãåŸæ¥ã®CSVãDBã«ã¢ããããŒãããåäœã§ã
checkãæ ªåŒå岿€åºã§ãã-cãä»ãããšè£æ£åã«ç¢ºèªãå¯èœã§ãã
singleãæ¥ãé±ãæè¶³çšã®åäœCSVã¢ããããŒãã§ãã
ã¡ã€ã³ããŒã«ãšé£æºããŠæ¥ãé±ãæè¶³ãDBåãã
äžã§ãã©ã£ãšç޹ä»ããŸããããsingleã¢ãŒãã¯æ¥ãé±ãæè¶³ã§åºåããäžéCSVãDBåããããã®ãªãã·ã§ã³ã§ãã
æ¬ããŒã«ã®ç»å Žã«äŒŽããã¡ã€ã³ã®ååŸããŒã«ãããŒãžã§ã³ã¢ããããæ¥è¶³ä»¥äžã«å¯Ÿå¿ããŸããããã ããCSVã¯è¿œèšããªã仿§ãªã®ã§ã1ãã¡ã€ã«1è¡ãšãªã£ãŠããŸããŸãããã®ããDBéå®ãšããŸããã
æ¬ããŒã«ãã¡ã€ã³ããŒã«ãšåããã©ã«ãã«æ ŒçŽããããšã§åŒåºããå¯èœã«ãªããæ¥è¶³ä»¥äžãããŒã¿ããŒã¹ã«ç»é²ããããšãã§ããŸãã

å®è¡ãããšãã®ããã«kindãD,W,Mã§ç»é²ãããŸãã

ããŒã¿ã®èªã¿åºãæ¹
次åã®å
容ã®äºå®ãªã®ã§ãããã§ã¯è»œãè§ŠããçšåºŠã«ããŠãããŸãã
ããŒã¿ããŒã¹ããããŒã¿ãèªã¿åºãã«ã¯ãSQLãšããæç€ºæãäœæããŠå®è¡ããå¿
èŠããããŸãã
SQLæ§æ
以äžã¯ã³ã³ãœãŒã«ãããã°ã€ã³ããäŸã§ã
#ãŸãã¯ããŒã¿ããŒã¹ã«ãã°ã€ã³
$ mysql -u root -p
#ããŒã¿ããŒã¹ãæå®
mysql> use StocksDB
#1åè¶³ãæ¥ä»ç¯å²ãæå®ããŠãããœãŒãããŠåºå
mysql> select * from Stock_9432 WHERE kind="1M" AND "2025-4-1 0:0:0"<=datetime AND datetime<="2025-4-30 23:59:59" ORDER BY datetime ASC;
+------+---------------------+------------+-------------+------------+-----------+----------+-----------+---------+
| kind | datetime | price_open | price_close | price_high | price_low | volume | chackflag | comment |
+------+---------------------+------------+-------------+------------+-----------+----------+-----------+---------+
| 1M | 2025-04-01 09:00:00 | 145.20 | 145.60 | 145.70 | 145.20 | 17978200 | 0 | NULL |
| 1M | 2025-04-01 09:01:00 | 145.60 | 145.20 | 145.70 | 145.10 | 2013100 | 0 | NULL |
| 1M | 2025-04-01 09:02:00 | 145.20 | 145.10 | 145.20 | 144.90 | 4746300 | 0 | NULL |
| 1M | 2025-04-01 09:03:00 | 145.10 | 145.20 | 145.30 | 145.00 | 1079700 | 0 | NULL |
| 1M | 2025-04-01 09:04:00 | 145.20 | 145.20 | 145.30 | 145.10 | 316100 | 0 | NULL |
| 1M | 2025-04-01 09:05:00 | 145.20 | 145.30 | 145.60 | 145.10 | 3386900 | 0 | NULL |
| 1M | 2025-04-01 09:06:00 | 145.30 | 145.50 | 145.50 | 145.30 | 151000 | 0 | NULL |ååŸã«ã¯SELECTã䜿ããŸã
fromã®åŸã«ããŒãã«åãæå®ããŸãã
WHEREã®åŸã«æ¡ä»¶ãæžããŸããä»åã¯1åè¶³ãªã®ã§ãkind="1M"ãšãæ¥ä»ã®ç¯å²ãæå®ãããã®ã§"2025-4-1 0:0:0"<=datetime AND datetime<="2025-4-30 23:59:59"ãå
¥ããŠããŸãã
ããã§kindã1Mãã€ã4/1ããæ°ããã4/30ããå€ãããŒã¿ãšããæ¡ä»¶ã§æœåºãã§ããŸãã
ãŸããããŒãã«ã®é çªã¯ä¿èšŒãããŠããªãã®ã§å¿
ããœãŒãããŸããORDER BYã§datetimeã§äžŠã³æ¿ããèŠæ±ããå°ããé ã§ããASCãæå®ããŸãã
kindãdatetimeã¯ããŒãã«ã®ã«ã©ã åã®äºã§ãã
å¿ èŠãªã«ã©ã ã ãéžãã ãè¡æ°å¶éã¯ä»¥äž
mysql> select datetime,volume from Stock_9432 WHERE kind="1M" AND "2025-4-1 0:0:0"<=datetime AND datetime<="2025-4-30 23:59:59" ORDER BY datetime ASC limit 10;
+---------------------+----------+
| datetime | volume |
+---------------------+----------+
| 2025-04-01 09:00:00 | 17978200 |
| 2025-04-01 09:01:00 | 2013100 |
| 2025-04-01 09:02:00 | 4746300 |
| 2025-04-01 09:03:00 | 1079700 |
| 2025-04-01 09:04:00 | 316100 |
| 2025-04-01 09:05:00 | 3386900 |
| 2025-04-01 09:06:00 | 151000 |
| 2025-04-01 09:07:00 | 637800 |
| 2025-04-01 09:08:00 | 767400 |
| 2025-04-01 09:09:00 | 1005900 |
+---------------------+----------+ãŸãšã
ä»åã¯åéããããŒã¿ãDBã«ç§»è¡ããæ ªåŒåå²ãå
šèªåã§é©çšããŠãããŸããã
å°ãåã¯AIã¯ãã£ãŠãæ€çŽ¢ãšçµã¿åãããç°¡åã«ã¯ã§ããåå²é¢é£ã®è£æ£æé©åã¯é£é¡ã§ããããGeminiã®ãããã§ããæãã«åºæ¥äžãããŸããã
ããã§ããŒã¿åæã§ã®æŽåæ§ãæ
ä¿ã§ããŸããã
次åã¯ãããã®ããŒã¿ãPythonã«åååŸããŠããã¯ãã«ã«ææšã®èšç®ãåCSVåãªã©ãæè»ã«äœ¿ã£ãŠããããšæããŸãã
é åžæ å ±
é åžURL
以äžã®URLããé
åžããŠããŸãã
å©çšèŠçŽã«åæã®äžãå©çšãã ããã
é åžæ å ±
远å ã®ããŒã¯ãŒãã«ã€ããŠã¯äžèšãã確èªå¯èœã§ã