
大きなCSVを見るシーン
エクセルでは開けないほど大きなCSVファイルを扱う必要がある——そんな場面に出くわしたことはありませんか?
たとえば、
数十万〜百万行規模の売上データ
アンケート結果やログデータ
業務システムから吐き出されたレポートCSV
・・・こういうデータをみて、ちょっと考察したい、分析したいといったケース
企業の中で働いている人だと、とてもよくあるケースだと思います 📓
これらはどのくらいのファイルサイズなのか? というと
たとえば
年間売上5億円の会社 で 販売単価が1万円くらいの会社
・・・であれば基本となる販売データだけで5万行あります
5年分だと25万行
これに商品の種類のデータや、値引きなどの各種施策のデータとの掛け合わせたりすると、あっという間に100万行以上の規模になるというわけです
当然 売上が、50億円・500億円…という大きなケースであれば
データも比例して増えていきます
それは一例にすぎませんが、企業の中で働いている人だと、数百万行のデータのデータ分析したいというのは割とよくあるケースだということですね
データベースじゃなくてCSVファイル
ある程度の規模の会社になると、たいていIT部門とエンジニアがいて、エンジニアは日常的にデータベースにさわれる人だったりするので、
エンジニアであれば数百万行のデータを扱うことは普通のことです
IT部門の中でデータ分析するときは、そのためのデータベースをたてて作業しますよね
ただ、えてして、企業の中でデータ分析を一人称でやりたい人は、マーケティング部門だったり、プロダクト部門・営業部門・人事部門など・・・・
IT部門じゃないところにいたりします
そして、
そういう非IT部門向けのデータ分析用データベースがない、という会社も多くいることでしょう
そういったケースのときのアルアルが、IT部門がCSVだけくれる、というパターンです
IT部門エンジニア: 「データベースから500万行のCSVを引っこ抜いておきましたので、あとはお好きに分析どうぞ」
といって渡してくれた巨大ファイルを見ながら「うーん・・・」って言っている
・・・こんな局面は結構あるんじゃないかなと思います。
こんなときどうすればいいか
できれば、慣れてるExcelで分析できたらいいんですが、残念ながらExcelは数万行を超えてくると(パソコンの性能にもよるでしょうが)動作が非常に遅くなりしんどいですよね
また、104万行を超えると通常の開き方では開けません
Excel Power Query (パワークエリー)という方法を使うと開くことはできますが、分析に時間がかかってしまう点は回避できず、動作の重さ、クラッシュのリスクがネックになってしまいます
だからといって、どこか知らないクラウド上にアップロードするのは、セキュリティ的にNGでしょうし
もちろんエンジニアみたく「じゃ、社内にデータベースたてときます」というのも自分にはハードルが高い
同様に、「TableauやPower BIなどのBIツールを導入しましょう」というのも、今後のプランの提案としてはいいけど、自分だけで今日明日の間にできることではない
今日中に分析したいのに困った…
やりたいのは、「ローカルPCだけで、大データを、スピーディーに扱いたいだけなのに!(もうちょっと行が少なければExcelでパパっとやっちゃうのに…!)」といったところでしょう
そこで今回はDBBrowser for SQLiteにとAI (Chat GPT、CoPilot、Gemini、Claude….チャット形式で相談できるAIならなんでも)によるアプローチをご紹介します
なぜDB Browser for SQLite なのか?
DB Browser fro SQLiteはSQLiteは超軽量のデータベースをGUI操作が付いているもので、以下の特長があります:
✅ 完全ローカル:ネット接続もサーバも不要
✅ 大容量OK:数十万〜数百万行でも軽快に動作
✅ 無料かつ導入が簡単
以下全てマウスでの操作が可能です
データの取り込み(CSV → テーブル化)
条件による抽出(検索フィルタ)
編集や削除
結果のエクスポート(再CSV化など)
最後に分析をするときだけSQLという言語を使いますが、これはAIのサポートで一瞬で解決できます
SQLを使った分析 → AIを使って解決
操作手順(DB Browser for SQLite の準備)
1. ツールのダウンロードとインストール
まずはダウンロードしましょう
Windows / macOS / Linuxすべて対応
※Windowsの方は「DB.Browser.for.SQLite-*.win64.exe」を選べばOKです
ここから先の画面イメージはMacのものでやっていきます
Homebrewは、ターミナルからコマンドラインでインストールする方法です
ここでは、インストーラー(Macだと .dmg のファイル)を使っていきます
dmgファイルを開くとこのような画面になるのでドラッグ&ドロップでApplicationsにコピーします
2. 新しいデータベースファイルを作成
3. CSVファイルをテーブルとしてインポート
テーブルというのは表状態のデータのことです
ファイル→インポート→CSVファイルからテーブルへ
これはサンプルなので900行ですが、これの100倍以上のサイズのCSVでも動きます
- 販売明細データ
- 商品原価マスタ
販売明細データはPOSデータや売上管理システムに入っているデータのイメージで、中にはこんな列があります
- SalesID(売上明細の通し番号)
- SalesDate(売上日)
- ProductID(売れた商品の商品ID)
- Category(売れた商品のカテゴリー)
- Gender(売れた商品がメンズかレディースか)
- Size(売れた商品のサイズ)
- SalesValue(売上金額)
- ProductID(商品ID)
- ProductCost(その商品の原価金額)
Excelでひらくとこんな感じのイメージです
それではCSVをインポートしましょう
CSVファイルを選択して「Open」
以下のようなプレビューが見えるはずです
こちらの例で6列目が文字化けしているのは、このCSVファイルの日本語部分の文字コード(Shift JIS)と、開くときに指定している文字コード(デフォルトがUTF-8)がずれていることによります。文字コード指定をファイルの実態(ここではShift JIS)に合わせれば解決します
エンコードを「その他」にします
その他を選ぶともう一つ欄がでてきます
この欄が空欄のテキストフィールドなので、「あれ、これどうしたらいいの」と思うかもしれません
(実際、自分もここがハマりポイントでした)
ここは適当に文字をいれると候補がでてきくる仕組みになっています
「S」といれてみましょう、今回はShift_JISを指定します
日本語が正しく読み取れました
「先頭行をカラム名にチェック」を入れます
カラム名は列名(ヘッダー)のことです
CSVの1行目に書かれている内容をカラム名と見なしてくれます
OKを押すと画面がとじて
データベース構造の中の「テーブル」の配下に追加されているのが見えます
もう一つのCSVも同じようにインポートしました
テーブルがもう一つ並んだのが見えます
これでデータの準備も完了です
これで「SQL」という指定方法(言語)でデータ分析ができるようになりました
SQLを使って(AIに作ってもらって)分析!
ここはAIが得意な領域なので心配ありません
やりたいことを言葉で書いて、AIにSQLを作ってもらいましょう
Chat GPTなどのAIを開いて、以下のような感じで指示します
以下の列からなる"販売明細データ"というテーブル
があります
SalesDate(販売した日)単位でSalesValue(売上額
を合計して一覧を出すSQLを作ってください
・SalesID
・SalesDate
・ProductID
・Category
・Gender
・Size
・SalesValue
答がこのようにかえってきました
SELECT
SalesDate,
SUM(SalesValue) AS TotalSalesValue
FROM
販売明細データ
GROUP BY
SalesDate
ORDER BY
SalesDate;
このSQL文の部分をDB Browser for SQLiteの「SQL実行」というタブをひらいて、コピペします
そして、メニューの中にある▶の形のボタンを押すとこのSQLが実行されます
するとすぐに実行結果がかえってきます(Sampleは900行のデータのグループ集計で6ミリ秒 = 0.006秒)
画面中腹部に結果がでました
出力結果はコピーできます
もう一つ例を出してみます
こんどは2つのテーブル(2つのCSV)を合体させないと出せない集計をしてみましょう
ProductID, ProductCostの列からなる
商品原価マスタというテーブルがあります
このProductIDと販売明細データのProductIDには
同じものがはいります
販売明細データをCategory列単位での総売上と総原価を
集計して一覧で出力させるSQLを書いてください
答はこんな感じでした
SELECT
s.Category,
SUM(s.SalesValue) AS TotalSalesValue,
SUM(c.ProductCost) AS TotalProductCost
FROM
販売明細データ AS s
JOIN
商品原価マスタ AS c
ON s.ProductID = c.ProductID
GROUP BY
s.Category
ORDER BY
s.Category;
分析結果が出ました
カテゴリー単位で売上合計と原価合計が集計されました
他にも、自分のやりたい分析を考えて、AIにSQLを書いてもらい、DB Browser for SQLiteで実行して・・・ということをやっていくと、分析がはかどります
AIと気持ちいい協業ができるケースになると思うので おすすめです
エンジニアの人たちが言っていた AIがプログラミング コーディングを助けてくれるってこういう感じかーという気持ちも味わえることでしょう
まとめ
大きなCSVを安全・高速に扱いたい場合、DB Browser for SQLite + AIという選択肢は非常に有力です
特に「社内データでクラウドは使えない」「Excelだと開かない」などの状況で威力を発揮します
非エンジニアでもGUI操作だけで扱えます
AIと協業してSQLを使った分析をするのは楽しい
ファイルのダウンロードにはユーザー登録またはログインをしてください