SQL セルを使用する

このガイドでは、SQL セルを使用して Colab Enterprise ノートブック内からデータをクエリする方法について説明します。

概要

SQL セルは、Colab Enterprise ノートブック内から SQL クエリを記述、編集、実行するためのコードセルです。SQL セルは、BigQuery 用 IPython マジックの代替ワークフローを提供します。

機能

SQL セルには次の機能があります。

  • ドライランのサポート: SQL ステートメントの検証と、クエリで処理されるバイト数の概算
  • 書式設定: キーワードのリンティングと構文のハイライト表示
  • BigQuery DataFrame の出力変数の命名: 他のノートブック セルから出力変数を参照する
  • 変数の置換: パラメータ化と、前のクエリの結果をクエリする機能をサポートするために、Python 変数と SQL セルを参照してください。
  • 結果セット ビューア: 大規模な結果セットのページネーションを備えた軽量の表形式の結果セット ビューア

サポートされている SQL 言語とデータソース

  • Colab Enterprise SQL セルは GoogleSQL をサポートしています。

  • BigQuery データに対して SQL クエリを実行できます。

制限事項

プロジェクトを計画する際は、次の制限事項を考慮してください。

  • 1 つの SQL セルで複数の SQL ステートメントを実行できますが、DataFrame に保存されるのは最後の SQL ステートメントの結果のみです。

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the BigQuery, Compute Engine, Dataform, and Vertex AI APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the BigQuery, Compute Engine, Dataform, and Vertex AI APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. 必要なロール

    Colab Enterprise ノートブックを作成し、ランタイムでノートブックのコードを実行し、ノートブックで BigQuery データを使用するために必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼します。

    ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

    必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

    SQL セルを作成する

    Colab Enterprise で SQL セルを作成するには、次の操作を行います。

    1. Google Cloud コンソールで、Colab Enterprise の [マイ ノートブック] ページに移動します。

      [マイ ノートブック] に移動

    2. [リージョン] メニューで、ノートブックを含むリージョンを選択します。

    3. 開きたいノートブックをクリックします。ノートブックをまだ作成していない場合は、ノートブックを作成します。

    4. ツールバーで、SQL セルを追加するには、 コードセル オプションを挿入メニューをクリックし、[SQL セルを追加] を選択します。

      SQL セルがノートブックに追加されます。

    クエリを入力して実行する

    1. SQL セルに SQL クエリを入力します。サポートされているステートメントと SQL 言語の概要については、BigQuery での SQL の概要をご覧ください。

      式で Python 変数を参照するには、変数名を中かっこ({ })で囲みます。たとえば、my_threshold という名前の Python 変数で値を指定した場合、次のようなクエリを使用して結果セットを制限できます。

      SELECT * FROM my_dataset.my_table WHERE x > {my_threshold};
          
    2. 実行する SQL セルの上にポインタを置いて、 [セルを実行] ボタンをクリックします。

    クエリの出力は、SQL セルのタイトルと同じ名前の BigQuery DataFrame として自動的に保存されます。

    結果セットを操作する

    結果セットは、BigQuery DataFrame または pandas DataFrame として操作できます。

    同じ SQL セル変数名を使用して SQL ステートメントを連結できます。たとえば、結果セットによって生成された BigQuery DataFrames を、DataFrame 名を中かっこ({ })で囲んで、次のクエリのテーブルとして使用できます。次の例をご覧ください。これは、df という名前の DataFrame として保存された前のクエリの出力を参照しています。

    SELECT * FROM {df};

    次のステップ