ã¢ãã€ã«ã¢ããªã®ãã°ã Agentic Coding ã§ SQL ãæžãããŠããã·ã¥ããŒããäœã
ããã«ã¡ã¯ãæ ªåŒäŒç€ŸIVRy ã®ãã«ããŒã§ãã
æ¬èšäºã§ã¯åŒç€Ÿã®ã¢ãã€ã«ã¢ããªãã¢ã€ããªãŒãã§ååŸããŠãã Firebase ã® Analytics ããã³ Crashlytics ã®ãã°ã Claude Code ã«åæãSQL ãæžãããŠããŒã¿åºç€äžã«ã¢ãã¿ãªã³ã°ããã·ã¥ããŒããäœæããã®ã§ç޹ä»ããããšæããŸãã

Databricks
IVRy ã§ã¯ Databricks ã瀟å ããŒã¿åºç€ãšããŠæ¡çšãã2025 幎 7 æããæ¬æ Œå©çšãéå§ããŠããŸããå°å ¥ã®æ§åã¯ä»¥äžã®ã¹ã©ã€ãã§ç޹ä»ãããŠããŸãã
ãã®ä»ã«ã 7æã®å°å ¥ä»¥éç¶ã ãšèšäºãå ¬éããŠããŸãã
- [2025-09-30] Databricks Genie ãå©çšããåæåºç€ãšããŒã¿ã¢ããªã³ã°ã® IVRy ã®çŸåšå°
- èªç¶èšèªã§ã®ããŒã¿åæãåœããåã«ïŒIVRyã®Databricks Genieéçšã®çŸåšå°ïŒã€ã³ã¿ãŒã³èŠç¹ïŒ
- ããŒã¿ãŠã§ã¢ããŠã¹ã§ã¢ããªéçº!? æ°æ©èœDatabricks Appsã§ç€Ÿå ã¢ããªãäœã£ã話
- AI ã§ããŒã¿åæïŒDatabricks Genie ã®æŽ»çšäºäŸ
èšäºäžã«ãããããã« Databricks ã® AI ã§ãã Genie ã«ã¯å€§ãã«æåŸ ããŠããã®ã§ããããFirebase Analytics, Crashlytics åãã®åæ SQL ãæžãããããšããçšéã«ãããŠã¯èªç¶èšèªã§æç€ºããŠäžžã£ãšä»»ãããšããããšã«ã¯ããå°ãæéãããããããªå°è±¡ã§ãã
ã¢ãããŒã·ã§ã³
ã¢ãã€ã«ã¢ããªãšã³ãžãã¢ã§æ¥åžžçã« SQL ãæžããŠãã人ã¯å€ãã¯ãªããšæããŸããç§èªèº«ãããã§ãããŸã«æžããšããŒã¿æ§é ãèšæ³ç å¿ããŠããŸã£ãŠããŠãªããªãæããããªåæãã§ããªãããšããã©ãããã£ãã§ãã
ããã§ AI ã«ã¢ã€ããªãŒã¢ããªã®ãã°ä»æ§ãçè§£ãããäžã§é«ç²ŸåºŠãª SQL ãå
šå¡ãæžããããã«ããããšæãåãçµã¿å§ããŸããã
Firebase Analytics ãš Crashlytics ã¯å€ãã®ã¢ãã€ã«ã¢ããªã§æ¡çšãããŠããããŒã«ã§ãããBigQuery ãžã®ãšã¯ã¹ããŒããéåžžã«ç°¡åã«å®çŸã§ãããã BigQuery ã§ãã°ãåæãããšããèšäºã¯ã¡ãã»ãèŠãããŸãã
ããããªãã Agentic Coding ã§èªåŸçã« SQL ãæžãããã»å®è¡ããããDatabricks ã§åæãã ãšããããšã«é¢ããŠäºäŸãèŠãããªãã£ãããåŒç€Ÿã®åãçµã¿ã誰ãã®åèã«ãªããããããªããšæãå·çã«è³ããŸããã
Agentic Coding ã®æºå
SQL å®è¡ç°å¢ã®æºå
Agentic Coding ã®ããã«å¿
èŠãªããšã¯ AI ãããŒã¿æ§é ãçè§£ã§ããç°å¢ãçšæããããšãã€ãŸãAI ãæžãã SQL ãå®è¡ã§ããç°å¢ãçšæããããšã ãšèããŸããã
åè¿°ã®éããFirebase Analytics ãš Crashlytics ã®ãã°ã¯ BigQuery ã«ãšã¯ã¹ããŒããå¯èœã§ããgcloud CLI ã䜿ãã° AI ã«çŽæ¥ BigQuery äžã§ã¯ãšãªãå®è¡ãããããšãå¯èœãªã®ã§ãããè²»çšé¢ãå§ããšããæ§ã
ãªæžå¿µããã£ããããGoogle Cloud Storage (GCS) ã« parquet 圢åŒã§å¿
èŠãªããŒã¿ã ããšã¯ã¹ããŒãããŠéçºçšç«¯æ«ã«ããŠã³ããŒã[1]ããããšã«ããŸããã
ãããŠéçºçšç«¯æ«ã§ SQL ãé«éã«å®è¡ããããã« DuckDB ãæ¡çšããŸããã
Claude Code ã« BigQuery ãã GCS ã« parquet 圢åŒã§ãšã¯ã¹ããŒãããããšèšãã°ããã«ã¹ã¯ãªãããæžããŠãããŸããIVRy ã§ã¯å€ãã®ããŒã ã§ mise ã䜿ã£ãŠããã®ã§ã»ããã¢ããæé ã¯ãã®ãããªæµãã§äœæããŠããããŸããã
.mise.toml
# .mise.toml
[tools]
duckdb = "latest"
gcloud = "latest"
python = "3.12"
shellcheck = "0.10"
[env]
_.file = [".env", ".env.local"]
# 1. ãªããžããªãã¯ããŒã³
git clone https://github.com/{your-org}/firebase-analysis.git
cd firebase-analysis
# 2. mise ã§ããŒã«ãã€ã³ã¹ããŒã«
mise install
# 3. ç°å¢å€æ°ã®èšå®
cp .env.example .env
# .env ãç·šé
# 4. GCPèªèšŒ
gcloud auth login
gcloud config set project YOUR_PROJECT_ID
# 5. ããŒã¿åæãšã€ã³ããŒã
mise run workflow
# 6. ãµã³ãã«ã¯ãšãªãå®è¡
mise run some-query
ã¹ããŒãããã¥ã¡ã³ãã®äœæ
ãŸã㯠Claude Code ã« DuckDB ã®å®è¡æ¹æ³ã ãæã㊠Firebase Analytics, Crashlytics ã®ãã°ãåæãããŠããã¥ã¡ã³ããæ¡å ããŸãã
ãã®æäœåºŠã詊è¡é¯èª€ããŠã³ãã³ããäœã£ãŠãããšæ°èŠãã°ãå¢ããéã®æ¡å ãæããŸãã
ã³ãã³ãäŸ
Analyze Crashlytics Issue
Firebase Crashlytics ã®ç¹å® issue ã詳现åæããã¬ããŒããèªåçæããŸãã
å®è¡æ¹æ³
/analyze-crashlytics-issue <issue_id> [start_date] [end_date]
äŸ:
/analyze-crashlytics-issue xxxxxxxxxxxx
/analyze-crashlytics-issue xxxxxxxxxxxx 2025-11-05 2025-11-12
åŒæ°:
-
issue_id: Firebase Crashlytics ã® Issue IDïŒå¿ é ïŒ -
start_date: åæéå§æ¥ïŒçç¥æ: 7æ¥åïŒ -
end_date: åæçµäºæ¥ïŒçç¥æ: 仿¥ïŒ
ð åæå 容
ãã®ã³ãã³ãã¯ä»¥äžãèªåçã«åæããã¬ããŒããçæããŸãïŒ
1. åºæ¬æ å ±
- ã¯ã©ãã·ã¥ç·æ°
- ãŠããŒã¯ããã€ã¹æ°
- åææé
- ãã©ãããã©ãŒã ïŒAndroid/iOSïŒ
2. 詳现ã¡ã¢ãªæ å ±
-
ç· RAM 容é =
memory.used + memory.free -
ã¡ã¢ãªäœ¿çšç =
100 Ã memory.used / (memory.used + memory.free) -
空ãã¡ã¢ãª =
memory.free - RAM 容éå¥ã®ååžïŒã4GB, 4ã6GB, 6ã8GB, 8ã12GB, 12GBãïŒ
- ã¡ã¢ãªäœ¿çšçã®çµ±èšïŒå¹³åãäžå€®å€ãæå°ãæå€§ïŒ
3. ã¹ãã¬ãŒãžæ å ±
- 空ãã¹ãã¬ãŒãžå®¹é
- ã¹ãã¬ãŒãžäœ¿çšç
- ã¹ãã¬ãŒãžäžè¶³ã®ã¯ã©ãã·ã¥æ¯ç
4. ããã€ã¹çµ±èš
- ã¡ãŒã«ãŒå¥ã¯ã©ãã·ã¥æ°ãšã¡ã¢ãªäœ¿çšç
- ããã€ã¹ã¢ãã«å¥ïŒäžäœ20ä»¶ïŒ
- Android/iOS ããŒãžã§ã³å¥
- CPU ã¢ãŒããã¯ãã£å¥
- ã¢ããªããŒãžã§ã³å¥ïŒå°å ¥ããŒãžã§ã³ã廿¢ããŒãžã§ã³ã®ç¹å®ïŒ
5. é話ã€ãã³ãåæïŒCrashlytics logs ã«é話ãã°ãå«ãŸããå ŽåïŒ
- é話ã¿ã€ãå¥ïŒçºä¿¡/çä¿¡ïŒ
- ã¯ã©ãã·ã¥ãã¿ãŒã³ïŒé話éå§æ/é話äž/é話çµäºåŸïŒ
- é話éå§ããã¯ã©ãã·ã¥ãŸã§ã®æéçµ±èš
6. å ±éãã¿ãŒã³ã®æœåº
- ã¯ã©ãã·ã¥çŽåã®ãã°ãã¿ãŒã³
- ãšã©ãŒã¡ãã»ãŒãžã®é »åºŠ
- ç¹å®ã®ã€ãã³ãã·ãŒã±ã³ã¹
7. æç³»ååæ
- æ¥å¥ã¯ã©ãã·ã¥æ°
- æé垯å¥ã®åŸå
- ããã€ã¹å¥ã®æç³»åæšç§»
ð åææé
Step 0: Crashlytics ã¿ã€ãã«ã»ãµãã¿ã€ãã«ã®ååŸ
DuckDB ããååŸ:
SELECT issue_title, issue_subtitle
FROM crashlytics_events
WHERE issue_id = '{issue_id}'
LIMIT 1;
Firebase MCP ãå©çšå¯èœãªå Žå:
- MCP ã®
get_crashlytics_issue颿°ã§ Issue ã¿ã€ãã«ãååŸ - MCP ã®
ask_gemini_consultant颿°ã§ã¯ã©ãã·ã¥ã®æŠèŠãååŸ - ååŸããæ å ±ãã¬ããŒãã®åé ã«èšèŒ
...çç¥
äŸãã° Analytics ã§ event_name action_xxx ãšãããã®ããã£ããšããŠã以äžã®ãããªæ
å ±ãããã«åºãŠããŸãã
- ã©ã® OS, ã¢ããªããŒãžã§ã³ã§ãã°ãååšããã
- ã©ããªãã©ã¡ãŒã¿ãŒãããã©ããªå€ãå ¥ã£ãŠããã
- 察象ãã°ã®å ã©ã®ãããã®å²åã
| äŸ1 | äŸ2 |
|---|---|
![]() |
![]() |
çžäºå€æçšããã¥ã¡ã³ããAGENTS.md ã®äœæ
DuckDB, BigQuery, Databricks ã¯ãããã SQL ã®é¢æ°ãç°ãªããŸãããã®ãã倿çšã®ããã¥ã¡ã³ããäœæããŸãããããäºåã«éãã調æ»ãããäžã§ãŸã倿ããŠãããäœåºŠããšã©ãŒã®ããåããç¹°ãè¿ããŠå€æã¬ã€ããå å®ãããŸããã
ç¹ã«å€æãæå°éã«ãªãããã«ä»¥äžã®æç€ºãããŠãããšå€æç²ŸåºŠãè¯ããªãå°è±¡ã§ããã
- ããŒãã«ã¯äœæããããã¥ãŒã®ã¿ã䜿çšããããš
- ãã¹ãæ§é ïŒevent_params, device ãªã©ïŒãä¿æããããš
- å ¬åŒã¹ããŒããå³å®ããããš


BigQuery 倿ã¬ã€ãã®æç²
Databricks ãžã®å€æã¬ã€ããåæ§ã«äœæããŸãã

Databricks 倿ã¬ã€ãã®åé
æåŸã« AGENTS.md ã CLAUDE.md çãæžããŠå šãŠã®ããã¥ã¡ã³ããèªãããã«æç€ºããã°å®æã§ã[2]ã
èªç¶èšèªã§åæãããå 容ãäŒã㊠SQL ãäœæãããã·ã¥ããŒãæ§ç¯
ãããŸã§ã§ Claude Code ã¯ã¢ãã€ã«ã¢ããªã®ãã°æ§é ãçè§£ããŠããããèªç¶èšèªã§åæãããå 容ãäŒããã ãã§ DuckDB ã§å®è¡ããåæçµæãåºããŠãããŠãæŽã« BigQuery, Databricks çšã® SQL ãåæã«åºåãããããã«ãªã£ãŠããŸãã
ãã® SQL ã䜿ã£ãŠ Databricks äžã§å®è¡ããŠããã·ã¥ããŒããäœæããã°å®æã§ãã

åæäŸé ŒäŸ
å®è¡ã®æ§å
Claude Code ãèªåŸçã«ã¯ãšãªãçºè¡ããŠããŒã¿æ§é ã確èªãåæããŠããããšãããããŸãã


å®è¡çµæ
ãµããªãŒããã³ãBigQuery ãš Databricks çšã® SQL ãåºåãããŠããŸãã



Databricks ãªãã§ã¯ã®äœ¿ãæ¹
Databricks ã«ã¯ ai_query ãšãã颿°ãçšæãããŠããŸãã
ç§ã¯ããã䜿ã£ãŠ Crashlytics ã® issue_id ãš installation_uuid ã§ã«ãŠã³ãããŠæ°ãå€ãçµã¿åããïŒ= åäžç«¯æ«ã§ç¹°ãè¿ãåãåé¡ãçºçïŒã«é¢ããŠãšã©ãŒãçºçããæã«ãŠãŒã¶ãŒãã©ããªæäœãããŠããããç¹åŸŽçãªãã°ãåºãŠããªããçæ¯æ¥åæãã㊠Slack ã«éç¥ããŠããŸãã
ai_query ããã䟿å©ãªã®ã§æ¬¡åãŸãèšäºã«ããäºå®ã§ãã
select
ai_query(
'databricks-gemma-3-12b',
concat(
"ããã¯ã¢ãã€ã«ã¢ããªãŠãŒã¶ãŒã®ç«¯æ«ããç¹°ãè¿ãéä¿¡ããããšã©ãŒã issue_id, installation_uuid ã§ group by ããŠãŸãšãããã°ã® 1ã€ã§ãã",
"...ã¢ã€ããªãŒåºæã®èª¬æã¯å²æ...",
"nested_logs ã«ãŠãŒã¶ãŒã€ãã³ãã®ãã°ãããã®ã§ issue_title, issue_subtitle ãèžãŸããŠãŠãŒã¶ãŒãã©ã®ãããªæäœãããŠãã©ã®ãããªçç±ã§ç¹°ãè¿ããã®ãšã©ãŒãçºçããŠããã®ããç°¡æœã«æããŠãã ããã",
"\n---\n",
"\nissue_title: ", c.issue_title,
"\nissue_subtitle: ", c.issue_subtitle,
"\nnested_logs: ", concat_ws(...)
)
) as ai_summary,
...
from some_crashlytics_logs

éç¥ã®äŸ
ãŸãšã
Firebase Analytics, Crashlytics ã§åéãããã°ã®åæã§ Agentic Coding ããæ¹æ³ã«ã€ããŠç޹ä»ããŸããã
åŸæ¥ã§ããã°æéãèŠããã§ããã以äžã®åŠçã Claude Code ã«ãã£ãŠæ£å³ 2æ¥ã§äœæããããšãã§ããŸããã
- mise ã䜿ã£ãç°å¢æ§ç¯
- BigQuery ãã察象ãã°ããŒã¿ã®ååŸ
- Google Cloud Storage (GCS) ãžã®ãšã¯ã¹ããŒãã¹ã¯ãªããã®äœæ
- GCS ããã®ããŠã³ããŒãã¹ã¯ãªããã®äœæ
- DuckDB ã AI ã³ãŒãã£ã³ã°ããŒã«ã«æäœãããŠããã¥ã¡ã³ãã®æŽå
- ã¹ããŒãããã¥ã¡ã³ãã®äœæ
- DuckDB, BigQuery, Databricks çšã® SQL çžäºå€æããã¥ã¡ã³ãã®äœæ
- AGENTS.md, CLAUDE.md çã®äœæ
- AI ã³ãŒãã£ã³ã°ããŒã«ã«èªç¶èšèªã§åæãããå 容ãäŒããŠåºåããã SQL ããããã·ã¥ããŒããäœæ
ãã®èšäºãåããããªèª²é¡ãæ±ããŠããæ¹ã®åèã«ãªãã°å¹žãã§ãã
IVRyã§ã¯ãAdvent Calendarããã1ã¬ãŒã³èµ°ãããŠããŸããæ¬æ¥ã¯ãã«ãããããã®ãå€åã®æã ãããçµç¹ã®ç±éãå¯èŠåããããIVRyæµã€ã³ã¿ãã¥ãŒèšäºã®äœãæ¹ãããã³ããå ¬éãããå ¬éãããŸããïŒãã²ã芧ãã ããã
We are hiring!
IVRyã§ã¯ãã€ãã³ããææ°ãã¥ãŒã¹ãåéããžã·ã§ã³ã®æ å ±ãåãåãããããäŒç€Ÿã«ã€ããŠè©³ãã話ãèããŠã¿ããããšãã£ãæ¹ã«åããŠããã£ãªã¢ç»é²ãã«ãžã¥ã¢ã«é¢è«ã®æ©äŒããçšæããŠããŸãããèå³ããæã¡ããã ããæ¹ã¯ããã²ä»¥äžã®ããŒãžãããç»é²ã»ãç³ã蟌ã¿ãã ããã
-
ã»ã³ã·ãã£ããªå 容ã¯å«ãŸããªãçµ±èšããŒã¿ã§ãããã°ãµã€ãºã®éœåäžå šæéãšããããšã¯é£ãããããå¿ èŠãªã€ãã³ããã°ãšæéãçµã£ãŠããŠã³ããŒãããããšã«ããŸããã â©ïž
-
ã奜ã¿ã§ submodule ãšããŠã¢ããªéçºã®ãªããžããªã远å ããããšã§å®ã³ãŒãããããŒã¿æ§é ãåŠã°ããããšãå¯èœã§ãããã°ã®æ¬ æèª¿æ»ã§ã¯å®éã®ãã°ãšã³ãŒãã®äž¡é¢ããåæã»ä¿®æ£ããŠãããã®ã§äŸ¿å©ã§ããã â©ïž


Discussion