<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Sqlite on hdknr blog</title><link>https://hdknr.github.io/blogs/tags/sqlite/</link><description>Recent content in Sqlite on hdknr blog</description><generator>Hugo -- 0.157.0</generator><language>ja</language><lastBuildDate>Thu, 12 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://hdknr.github.io/blogs/tags/sqlite/index.xml" rel="self" type="application/rss+xml"/><item><title>Claude Codeで大量データを扱うならSQLite/DuckDBを使おう</title><link>https://hdknr.github.io/blogs/posts/2026/03/claude-code%E3%81%A7%E5%A4%A7%E9%87%8F%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E6%89%B1%E3%81%86%E3%81%AA%E3%82%89sqlite/duckdb%E3%82%92%E4%BD%BF%E3%81%8A%E3%81%86/</link><pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate><guid>https://hdknr.github.io/blogs/posts/2026/03/claude-code%E3%81%A7%E5%A4%A7%E9%87%8F%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E6%89%B1%E3%81%86%E3%81%AA%E3%82%89sqlite/duckdb%E3%82%92%E4%BD%BF%E3%81%8A%E3%81%86/</guid><description>&lt;p&gt;Claude Code で Markdown や JSON ファイルを直接編集してデータ管理を行うのは、少量のデータなら問題ありません。しかし、レコード数が100件を超えるような規模になると、スキーマ違反や細かいスクリプト制御の問題、パフォーマンスの低下が発生しやすくなります。こうした場面では、SQLite や DuckDB を活用するのが効果的です。&lt;/p&gt;
&lt;h2 id="markdownjson-直接編集の限界"&gt;Markdown/JSON 直接編集の限界&lt;/h2&gt;
&lt;p&gt;Claude Code にMarkdown ファイルや JSON ファイルを直接編集させる方法は、手軽で分かりやすい反面、データ量が増えると以下の問題が顕在化します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;スキーマ違反&lt;/strong&gt;: JSON の構造が崩れたり、必須フィールドが欠落するケースが発生する&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;細かいスクリプト制御が必要になる&lt;/strong&gt;: データの整合性を保つために、バリデーションや変換のスクリプトが増えていく&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;パフォーマンス低下&lt;/strong&gt;: ファイル全体を読み込んで書き戻す処理が、レコード数に比例して遅くなる&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="sqlite-を使うメリット"&gt;SQLite を使うメリット&lt;/h2&gt;
&lt;p&gt;SQLite はファイルベースの軽量データベースで、Claude Code との相性が良好です。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;1
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;2
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;3
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;4
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;5
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# SQLite データベースを作成してテーブルを定義&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sqlite3 data.db &lt;span style="color:#e6db74"&gt;&amp;#34;CREATE TABLE items (id INTEGER PRIMARY KEY, name TEXT, value REAL);&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Claude Code から SQL でデータを操作&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sqlite3 data.db &lt;span style="color:#e6db74"&gt;&amp;#34;INSERT INTO items (name, value) VALUES (&amp;#39;example&amp;#39;, 42.0);&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sqlite3 data.db &lt;span style="color:#e6db74"&gt;&amp;#34;SELECT * FROM items WHERE value &amp;gt; 10;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ACID準拠&lt;/strong&gt;: データの整合性がデータベースエンジンによって保証される&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SQL によるクエリ&lt;/strong&gt;: 複雑な検索・集計・更新が簡潔に記述できる&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;単一ファイル&lt;/strong&gt;: &lt;code&gt;.db&lt;/code&gt; ファイル1つで完結し、バックアップやコピーが容易&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="duckdb-を使うメリット"&gt;DuckDB を使うメリット&lt;/h2&gt;
&lt;p&gt;DuckDB は分析用途に特化したインプロセスデータベースです。CSV、Parquet、JSON などのファイルを直接 SQL でクエリできます。&lt;/p&gt;</description></item></channel></rss>