(無料) 非エンジニアが巨大データ分析でシゴデキする方法

このエントリーをはてなブックマークに追加
Big CSV to pass

大きなCSVを見るシーン

エクセルでは開けないほど大きなCSVファイルを扱う必要がある——そんな場面に出くわしたことはありませんか?

たとえば、

  • 数十万〜百万行規模の売上データ

  • アンケート結果やログデータ

  • 業務システムから吐き出されたレポートCSV

・・・こういうデータをみて、ちょっと考察したい、分析したいといったケース 

企業の中で働いている人だと、とてもよくあるケースだと思います 📓

これらはどのくらいのファイルサイズなのか? というと

たとえば

年間売上5億円の会社 で 販売単価が1万円くらいの会社

・・・であれば基本となる販売データだけで5万行あります

5年分だと25万行

これに商品の種類のデータや、値引きなどの各種施策のデータとの掛け合わせたりすると、あっという間に100万行以上の規模になるというわけです

当然 売上が、50億円・500億円…という大きなケースであれば

データも比例して増えていきます

それは一例にすぎませんが、企業の中で働いている人だと、数百万行のデータのデータ分析したいというのは割とよくあるケースだということですね

DB icon

データベースじゃなくてCSVファイル

ある程度の規模の会社になると、たいていIT部門とエンジニアがいて、エンジニアは日常的にデータベースにさわれる人だったりするので、

エンジニアであれば数百万行のデータを扱うことは普通のことです

IT部門の中でデータ分析するときは、そのためのデータベースをたてて作業しますよね

ただ、えてして、企業の中でデータ分析を一人称でやりたい人は、マーケティング部門だったり、プロダクト部門・営業部門・人事部門など・・・・

IT部門じゃないところにいたりします

そして、

そういう非IT部門向けのデータ分析用データベースがない、という会社も多くいることでしょう

そういったケースのときのアルアルが、IT部門がCSVだけくれる、というパターンです

IT部門エンジニア: 「データベースから500万行のCSVを引っこ抜いておきましたので、あとはお好きに分析どうぞ」

Engineer and marketer

といって渡してくれた巨大ファイルを見ながら「うーん・・・」って言っている

・・・こんな局面は結構あるんじゃないかなと思います。

こんなときどうすればいいか

できれば、慣れてる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の方は「DB.Browser.for.SQLite-*.win64.exe」を選べばOKです

ここから先の画面イメージはMacのものでやっていきます

 Homebrewは、ターミナルからコマンドラインでインストールする方法です

ここでは、インストーラー(Macだと .dmg のファイル)を使っていきます

dmgファイルを開くとこのような画面になるのでドラッグ&ドロップでApplicationsにコピーします

 

アプリケーションフォルダでDB Browser for SQLiteをダブルクリックで開きます

 

 こういう画面がでる場合もあるかもしれませんが開きます
 DB Browser for SQLiteが開けました。日本語設定をしたい方は  DB Browser for SQLite → Preferences (設定) を開くと設定できます
 これで使用準備ができました

2. 新しいデータベースファイルを作成

 

ファイル→新しいデータベース を選びます
データベースの保存先を選びます

 

つづいてテーブル定義の画面になりますが、ここはいったんキャンセル
 

3. CSVファイルをテーブルとしてインポート

このあとCSVファイルをデータベース(テーブル)として扱えるようにするためにインポートをします
テーブルというのは表状態のデータのことです

ファイル→インポート→CSVファイルからテーブルへ

 

 

今回はサンプルとして2つのCSVファイルを用意しました
これはサンプルなので900行ですが、これの100倍以上のサイズのCSVでも動きます
  1. 販売明細データ
  2. 商品原価マスタ

販売明細データは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に作ってもらって)分析!

非エンジニアを想定しているので、「SQLなんて書けないよ」と思うと思うのですが

ここは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を使った分析をするのは楽しい

 
上記のデモで使ったサンプルデータ(2つのCSV)を欲しい方はこちらからどうぞ

ファイルのダウンロードにはユーザー登録またはログインをしてください

アイデアのスイッチ!
created by Rinker
ソフトバンク、NTTデータ、三井不動産などで続々採用! たった5分で理解できて、30分でアイデアが溢れ出す まったく新しい思考法! 企業・学校で大人気の研修プログラムを完全書籍化! 4つのステップをたどるだけで、誰でも自動的に「アイデア脳」のスイッチが入って、新しいアイデアがどんどん溢れ出す!