第1章 Snowflake AI Data Cloudの特徴とアーキテクチャ(Features & Architecture, 31%)
🎯 この節の学習目標
Snowflake のすべての接続手段は、1-1 で学んだクラウドサービス層への入り口です。Web UI もコマンドラインもドライバも、最終的には同じサービス層を経由してクエリが処理されます。まず全体像を図で押さえましょう。
図:接続手段は多様でも、経路はクラウドサービス層に集約される
Snowsight は Snowflake の標準 Web インターフェースです。ブラウザだけで、SQL の実行から管理作業までひととおりの操作ができます。主要な機能は次のとおりです。
| 機能 | 内容 |
|---|---|
| ワークシート | SQL(および Python)を書いて実行するエディタ。結果のグラフ化や共有もできる |
| ダッシュボード | 複数のクエリ結果をタイルとして並べた可視化画面を作成・共有できる |
| Query Profile | 実行済みクエリの実行計画と各ステップの統計を可視化する性能分析ツール |
| 管理画面 | ユーザー・ロール・ウェアハウス・コスト等の管理、クエリ履歴の確認 |
| Copilot | 自然言語での質問から SQL 作成を支援する LLM ベースのアシスタント |
📝 試験のポイント
「クエリが遅い原因を GUI で調査したい」→ Snowsight の Query Profile、という対応付けは試験で問われやすい論点です。Query Profile では実行計画の各オペレーターの処理時間やスピル(ディスク書き出し)の有無などを確認できます。「性能分析は Query Profile」とまず覚えておきましょう。
コマンドラインからの操作には2つのツールがあります。位置づけの違いに注意してください。
| ツール | コマンド | 位置づけ |
|---|---|---|
| Snowflake CLI | snow | 新しい開発者向け CLI。SQL 実行に加え、アプリやオブジェクトの管理・開発ワークフローを支援する |
| SnowSQL | snowsql | 従来からの CLI クライアント(レガシー)。対話的な SQL 実行やスクリプトからのバッチ実行に使われてきた |
どちらも「ターミナルから Snowflake に SQL を投げる」ことができますが、現在の開発者向けの主軸は Snowflake CLI(snow コマンド)で、SnowSQL はレガシーという整理です。
アプリケーションや外部システムから Snowflake に接続するには、言語・基盤ごとに用意されたドライバやコネクタを使います。
| ドライバ / コネクタ | 主な用途 |
|---|---|
| JDBC ドライバ | Java アプリケーションや、JDBC 対応の BI・ETL ツールからの接続 |
| ODBC ドライバ | ODBC 対応のツール(表計算ソフトや各種 BI ツールなど)からの接続 |
| Python Connector | Python プログラムからの接続・クエリ実行 |
| Node.js / Go / .NET ドライバ | それぞれの言語で書かれたアプリケーションからの接続 |
| Spark Connector | Apache Spark クラスタと Snowflake の間でのデータ読み書き |
| Kafka Connector | Apache Kafka のトピックから Snowflake のテーブルへのデータ取り込み |
💡 具体例:用途からツールを選ぶ
試験では、このような「用途 → ツール/ドライバ」の対応付けが問われやすいため、表の対応をそのまま覚えるのが近道です。
ドライバ・コネクタと混同しやすい3つの仕組みを整理します。
| 仕組み | 内容 |
|---|---|
| Snowpark | Python / Java / Scala 向けの DataFrame API を提供するライブラリ群。単なる接続クライアントではなく、記述した処理は Snowflake サーバー側(仮想ウェアハウス上)にプッシュダウンされて実行される(詳細は 1-9) |
| Partner Connect | Snowsight から、BI・ETL などのパートナー製品のトライアルアカウントを作成し、Snowflake との接続設定まで自動で行う仕組み |
| SQL API | REST API 経由で SQL 文を送信・実行できるインターフェース。ドライバを組み込めない環境や、軽量な HTTP ベースの連携に使う |
📝 試験のポイント
Snowpark は「Python 用の接続ドライバ」ではありません。Python Connector はクライアント側でクエリを送るための接続ライブラリ、Snowpark は DataFrame 操作を Snowflake サーバー側で実行させるための API、という違いが問われることがあります。「Snowpark = クライアントにデータを持ってこず、処理を Snowflake 側に押し込む」と覚えておきましょう。
✅ この節のまとめ
問1. 実行済みクエリの実行計画を可視化し、どのステップに時間がかかったかを GUI で分析したい。使うべき機能はどれか。
正解:A
クエリの実行計画と各ステップの統計を可視化するのは Snowsight の Query Profile です。Bの SnowSQL はコマンドラインクライアントであり、GUI での可視化機能は持ちません。Cの Partner Connect はパートナー製品との接続セットアップの仕組み、Dの Kafka Connector は Kafka からのデータ取り込み用で、いずれも性能分析とは無関係です。
問2. Snowpark の説明として最も適切なものはどれか。
正解:B
Snowpark は Python/Java/Scala 向けの DataFrame API で、記述した処理は Snowflake 側(仮想ウェアハウス上)にプッシュダウンされて実行されます。Aは ODBC ドライバの説明、Cは Snowsight の説明です。Dは「ローカルで処理する」という点が Snowpark の設計思想と正反対で誤りです。データを動かさず処理を寄せる、が Snowpark の要点です。
問3. ツール・接続手段と用途の組み合わせとして誤っているものはどれか。
正解:D
Snowflake CLI はターミナルから使う開発者向けコマンドラインツールであり、ブラウザ上のダッシュボード作成は Snowsight の機能です。したがってDの組み合わせが誤りです。A・B・Cはいずれも正しい対応付けで、この「ツール名 → 用途」のマッチング形式は試験で問われやすいパターンです。
問4. Partner Connect の説明として正しいものはどれか。
正解:B
Partner Connect は、Snowsight からパートナー製品(BI・ETL など)のトライアルアカウント作成と Snowflake への接続設定をまとめて自動化する仕組みです。Aはデータ共有(シェア)機能の説明で別物です。Cはプライベート接続(PrivateLink 等、1-2参照)を連想させる説明ですが Partner Connect とは無関係です。Dのような再販ポータルの意味もありません。