2025年12月20日
データ活用

さらば、フリーズ地獄。100万行の「汚いCSV」をSnowflakeという湖に放流する儀式

さらば、フリーズ地獄。100万行の「汚いCSV」をSnowflakeという湖に放流する儀式
この記事をシェア

Excelの「104万行の壁」を知っているか

皆さんは、Excelの最終行を見たことがあるでしょうか。 Ctrl + 矢印キー(下)を押したときに到達する、あの最果ての地です。 「1,048,576行」。 これが、Excelという表計算ソフトが許容するデータの限界値です。これを超えたデータは、警告とともに無慈悲に切り捨てられます。

しかし、現場の現実はもっとシビアです。 理論上の限界に達するずっと前、数万行を超えたあたりで、VLOOKUPの計算は遅くなり、オートフィルタをかけるだけで砂時計が回り続けます。 画面上部に表示される「応答なし」の白いモヤ。あれを見つめている時間は、人生において最も不毛な時間の一つと言えるでしょう。

データ量が多すぎるからと、CSVファイルを月別に分割して作業していませんか。 それは、あなたが本来やるべき仕事ではありません。

Snowflakeには、そのような行数制限はありません。 100万行も、1億行も、このプラットフォームにとっては誤差の範囲です。 今日、あなたのデスクトップにあるその「重たくて開けないCSV」を、一瞬で処理可能な状態にする手順をお伝えします。 道具を変えれば、景色は変わります。

データロードは「入国審査」である

Snowflakeを使い始めたばかりの方が、最初につまずく概念があります。 「ステージ(Stage)」と「ファイルフォーマット(File Format)」です。

Excelであれば、CSVファイルをダブルクリックすれば開きます。 しかし、Snowflakeのようなデータウェアハウスは、もう少し厳格な作法を求めます。 これを、海外旅行の「入国審査」に例えてみましょう。

PCにあるデータ(あなたの自宅)から、テーブル(入国後の滞在先)へ、いきなり荷物を投げ込むことはできません。 一度、「ステージ」と呼ばれる場所(空港の税関)に荷物を置く必要があります。 そこで、「ファイルフォーマット」というパスポートの提示を求められます。 「この荷物はCSV形式か、JSONか」 「区切り文字はカンマか」 「文字コードはUTF-8か、それともShift-JISか」。

この確認プロセスを経て初めて、データはテーブルの中に格納されます。 一見、面倒な手続きに見えるかもしれません。 しかし、建築において基礎工事を疎かにすれば建物が傾くように、データの入り口で厳格なチェックを行うからこそ、中に入ったデータは「信頼できる情報」として扱えるのです。 汚いデータをそのまま流し込まない。これは、堅牢なデータ基盤を作るための必要な儀式なのです。

実践:GUIならドラッグ&ドロップで終わる

ではまずメニューを日本語にしましょう!

1.左下のプロフィールアイコンをクリック

画面左端のメニュー最下部にある、ご自身のユーザー名(またはイニシャル)が表示されているアイコンをクリックし、「設定」をクリックします。

2.「Profile」を選択

表示されたメニューの中から Profile をクリックしてください。

3.Language(言語)の設定を探す

プロフィール設定画面が開きます。その中の Language という項目を探してください。

4.「Japanese (日本語)」を選択して保存

ドロップダウンメニューから Japanese (日本語) を選択します。

設定を変更すると、画面が自動的にリロード(再読み込み)され、メニューが日本語に切り替わります。

これでメニューも日本語になりましたね。では次に進みます。

まず、データを運ぶには、トラックのエンジンをかける必要があります。Snowflakeではこれを「ウェアハウス(Warehouse)」と呼びます。 難しいことはありません。管理画面の「Manage」メニューから「コンピュート(Compute)」をクリックすると[ウェアハウスWarehouse]というタブがでてきます。

ウェアハウスが3つならんでいます。これはSnowflakeが最初から親切に用意してくれたものと自動で作られたものです。今回はCOMPUTE_WHを使います。

概念を理解したところで、実際にデータを投入してみましょう。 現代のSnowflakeには、直感的に操作できる管理画面「Snowsight」があり、優秀なウィザードが用意されています。

1. データベースとスキーマを作る(データの住所を決める)

まずはデータを格納するための「箱」を用意します。

左メニューの中ほどにある [Horizon Catalog] グループをクリックし、続けて [カタログ] を選択します。

画面右上の青い [+ データベース] ボタンを押し、名前に TEST_DB と入力して「作成」をクリックします。

作成された TEST_DB が一覧に出るので、その名前をクリックして中に入ります。

次に [+ スキーマ] ボタンを押し、名前に TEST_SCHEMA と入力して「作成」をクリックします。

2. 「ロード」ウィザードを起動する

作成した TEST_SCHEMA の中に入ると、まだテーブル(表)が一つもない状態です。ここからデータの「入国審査」を開始します。

画面右上にある青い [作成] ボタンをクリックします。

メニューから [テーブル][ファイルから] を選択してください。これが魔法の入り口です。

3. CSVをドラッグ&ドロップする

「テーブルへのデータのロード」という画面が立ち上がります。

手元のCSVファイルを、画面中央の点枠の中にドラッグ&ドロップします。

アップロードが完了するとファイル名が表示されるので、画像下部の 「名前」 と書かれたすぐ下の空の入力欄に、作成したいテーブルの名前(例:TEST_TABLE など)を入力してください。右下の [次へ] をクリックします。

4.プレビューとファイル形式(入国審査の最終確認)

ここが最も重要な「検疫」のステップです。Snowflakeがデータの中身を自動で解析し、どのように取り込むべきかを提案してくれます。

・ファイル形式の確認(左側パネル): 画面左上の「ファイル形式」で「Delimited Files (CSV or TSV)」が選択されていることを確認します。

「オプションを表示」が鍵: もし右側のプレビューが1列に固まっていたり、文字化けしていたりする場合は、左側にある青い文字の「オプションを表示」をクリックしてください。

・文字化け・見出しの対応: 「オプションを表示」を押すと出てくる詳細設定で、以下の2点を調整します。

 ・文字コード: 「エンコーディング」を、元のファイルに合わせて「UTF-8」や「Shift-JIS」に切り替えます。

 ・ヘッダー(見出し): 「ヘッダーを含む最初の行」という設定項目を確認します。これにチェックを入れることで、CSVの1行目を見出しとして正しく認識させることができます。

・列の定義(右側パネル): 画面右側には、Snowflakeが推測した「列名」と「データ型(文字列や数値など)」が並んでいます。

 現在は「c1」「c2」のように仮の名前が付いていますが、ここを直接クリックして「日付」「金額」のように分かりやすい名前に書き換えることも可能です。

5.実行

プレビューの内容がExcelのように綺麗に整い、各データが適切な列に収まっていることを確認したら、準備完了です。右下の青い [ロード] ボタンをクリックしましょう。

これでロードが完了、テストデータの719行のデータが無事に TEST_DB.TEST_SCHEMA.TEST_TABLE へ格納されました。

このGUIを使った操作手順については、前回ご紹介した書籍『ゼロからのデータ基盤 Snowflake実践ガイド』でも丁寧に解説されています。手元に置いておくと、迷った時の羅針盤になるでしょう。

書籍:ゼロからのデータ基盤 Snowflake実践ガイド ※Kindle版もありますが、図解を確認しながら操作するには紙の本が便利です。

Udemy:Snowflakeの基礎を学ぶ講座 ハンズオン形式で手を動かしながら学びたい方には、動画講座も有効な選択肢です。

検証:100万行を一瞬で数える快感

ロードが完了し、緑のチェックマークが表示されたら、いよいよ「放流」の成果を確認しましょう。 これまでの苦労が報われる瞬間です。

1. ワークシートを起動する

ロード完了画面にある [テーブルからSQLを生成] ボタンをクリックしてください。 自動的に「ワークシート」という、SQLを記述・実行するためのエディタが立ち上がります。

2. 全行数を数える(COUNT)

エディタにはすでにSQLが入力されているかもしれませんが、まずはシンプルに件数を確認してみましょう。 以下の1行を入力(または書き換え)してみてください。

SELECT COUNT(*) FROM TEST_TABLE;

画面右上の [Run] (再生ボタン) をクリックするか、Command (Ctrl) + Enter を叩いてください。 さきほどあなたがロードしたデータ件数が一瞬で表示されます。

3. データの顔ぶれを見る(SELECT *)

次に、中身を10行だけ覗いてみましょう。

SELECT * FROM TEST_TABLE LIMIT 10;

Excelならスクロールするたびにフリーズしていたあのデータが、今はあなたの指先一つで自在に動いています。

待つ必要はありません。ストレスもありません。 この「データを完全に掌握している」という全能感こそが、データエンジニアとしての第一歩であり、最大の醍醐味です!


なお、一旦この画面を閉じたあとや別のメニューに移動した後に、SQLを実行する画面(ワークシート)に戻る手順は以下の通りです。

・左メニューの [プロジェクト] をクリック 左端のメニューの一番上にある、フォルダのようなアイコンのメニューです。

・[ワークシート] を選択 [プロジェクト] をクリックすると展開されるメニューの中から [ワークシート] をクリックします。

・作成済みのワークシートを選ぶ 画面中央に、これまでに作成したワークシートの一覧が表示されます。

先ほど「テーブルからSQLを生成」で自動作成されたものも、ここに保存されています。

新しく作りたい場合は、右上の [+ ワークシート] ボタン(または [+] アイコン)から [SQLワークシート] を選んでください。


次回予告:VLOOKUPの葬送

データは無事にSnowflakeという湖に放流されました。 しかし、現時点ではまだ「生の素材」が入っただけです。 業務で使うためには、ここから加工し、集計する必要があります。

Excel職人の皆さんなら、ここで「VLOOKUP関数」を使って別のシートと突き合わせる作業を想像するでしょう。 そして、その計算処理の重さに再び絶望するかもしれません。

安心してください。Snowflakeの世界にVLOOKUPによる待ち時間はありません。 次回は、Excel職人の必殺技であるVLOOKUPを、SQLの「JOIN(結合)」に置き換える方法を解説します。 複数のCSVを結合し、集計し、レポートを作る。Excelで3時間かかっていた作業を、3秒にする魔法をお教えしましょう。

その苦労は、仕組みで解決できます。一緒に構造をほどいていきましょう!

この記事をシェア

ひとり情シスの課題、ひとりで抱え込んでいませんか?

AIツールの選定から業務効率化の実装まで、TrinityDoxが伴走支援します。

無料相談を申し込む