読者です 読者をやめる 読者になる 読者になる

銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

Google BigQuery で空のテーブルを C# から作成する (Client Library for .NET)

BigQuery C#

時代はGoogle BigQuery ということで、最近BigQueryを触っています。BigQuery はWebのコンソールが用意されていて割とすぐに使えるのですが、空のテーブルを作成するのは、CLIツールかREST API経由のみのようです。(GUIからは、ファイルを読みこんで、テーブル作成とデータインポートを同時に行う操作ができる)

REST APIについては、API Explorer 使ってWebからお手軽に試せるのですが、今回は Client Library for .NET を使ってC# から実行してみました。

事前準備として、 - Google Developer Consoleにログインして、プロジェクトを作成し、クレジットカードを登録して課金を有効にする(無料枠があるものの、課金を有効にしないと使えない) - APIの認証情報で、Public API access 用のApiKeyを発行する(通常のGoogleアカウントの場合、Google Appsなどの場合はこの認証方法は使えない模様) が必要です。

ここまでできたら、C#でコードを書きますが、Nugetから「Google.Apis.Bigquery.v2」をダウンロードして参照に追加しておきます。 サンプルコードはこんな感じになります。

CreateBigQueryTable.cs

ApiKeyを指定して、BigqueryServiceを作成し、テーブルを作成するAPIを実行します。必須のパラメーターはテーブルスキーマである Schmea とテーブルの詳細情報である TableReferenceプロパティです。ProjectIdとDatasetIdは、APIの引数と、TableReferenceのプロパティの両方に同じものを指定することになります。

Request Bodyにあたる、このTableクラス、REST APIだとJSON形式で、JSON Schemaで定義されているのですが、Client Library for .NET の場合はC# のクラスとして定義されていて、.NET のAPIドキュメントを見るだけである程度わかるようになっています。

というコードで空のテーブルができたので、次回はデータを投入してみたいと思います。