Mac 用 Google BigQuery クライアント
プロジェクトのデータセットに GoogleSQL を書き、実行前にスキャン量を確認し、ジョブの請求上限を設定できます。行はグリッドで編集でき、テーブルは Mac を通さず Cloud Storage にアンロードできます。
Mac で使用可能初めて Google BigQuery を選ぶとドライバーをダウンロード
概要
- クエリ言語
- SQL
- ドライバー
- 初回使用時にダウンロード
- 接続方法
- サービスの API
- iPhone と iPad
- 開けない
Google Cloud で認証
Auth Method を選び、名前や番号ではなく ID を Project ID に入力します。Application Default Credentials は gcloud auth application-default login が書くファイルを読むため、gcloud 設定済みなら最短の方法です。Service Account Key は .json 鍵ファイルまたは貼り付けた JSON を使います。
Google Account (OAuth) は Google Cloud Console で作成したデスクトップ OAuth クライアントでブラウザ認証します。更新トークンはクライアントごとに一つキーチェーンに保持し、次の接続ではブラウザ不要です。一つの OAuth クライアントで認証できるのは一つの Google アカウントなので、二つ目には別のクライアントか専用の更新トークンが必要です。
すべて BigQuery の REST API を使うため、ホスト、ポート、接続 URL や SSH トンネルはありません。Location は各ジョブに送る処理場所を設定します。クラウド認証も参照してください。
クエリと費用の制御
実行前に Explain メニューの Dry Run (Cost) を選べます。処理・請求される予定のバイト数、キャッシュヒットフラグと米ドルの推定費用を表示し、クエリ自体は実行しません。
実行後のステータスバーは処理バイト数、請求バイト数とオンデマンド料金での推定費用を表示し、キャッシュヒットを示します。厳密な上限には Advanced タブの Max Bytes Billed を設定します。BigQuery は超えるジョブを実行せず拒否します。
補完、引用と整形は GoogleSQL に従い、テーブル名をバッククォートで囲み、STRUCT と ARRAY は JSON 表示します。データセットがデータベースの役割を担い、サイドバーに表示します。⌘K で切り替え、各タブは開いたデータセットに留まります。ジョブはクエリタイムアウトまでポーリングしてキャンセルします。No limit なら完了まで待ちます。
セル、挿入と削除は グリッド で操作します。UPDATE と DELETE は宣言した主キーで特定し、なければ ARRAY、JSON、GEOGRAPHY 以外の全カラムで特定するため、同一行は一緒に変わります。一行を正確に編集するには PRIMARY KEY (…) NOT ENFORCED を宣言します。パーティションテーブルではエディタでパーティションフィルター付きの UPDATE と DELETE を書いてください。
データセットと DDL
DDL はエディタで実行し、CREATE SCHEMA、ALTER TABLE … ADD COLUMN、DROP COLUMN、CREATE OR REPLACE VIEW などを使えます。New Database… は CREATE SCHEMA でデータセットを作り、テーブルはサイドバーから名前変更できます。DDL タブは INFORMATION_SCHEMA.TABLES から定義を取得し、クラスタリングとパーティションは Indexes に表示します。
データの移動
TablePro は BigQuery のインポートに対応しません。テーブルやクエリ結果を Mac に CSV、JSON、SQL、XLSX、Markdown、HTMLとXML で エクスポート できます。
Server-Side Export は EXPORT DATA でテーブルを gs:// プレフィックス配下に分割し、CSV、Parquet や改行区切り JSON としてアンロードします。自分の接続と権限で実行し、シートは完了まで待機します。Mac にファイルを書きません。
iPhone と iPad
iPhone と iPad アプリには Google BigQuery ドライバーがありません。Mac から同期した Google BigQuery 接続は一覧に表示しますが、開けません。
制限
- Structure タブは読み取り専用です。エディタで DDL を実行してください。
- トランザクションは非対応です。
Google BigQuery に関する質問
BigQuery 接続に必要な IAM ロールは?
クエリ実行には roles/bigquery.user、データの読み取りには roles/bigquery.dataViewer、変更には roles/bigquery.dataEditor が必要です。
深いページへ移動せず絞り込むのはなぜですか?
テーブルの深いページはその都度先頭から再スキャンします。深くページを送る代わりに、フィルターや WHERE 句で行を絞ってください。
TablePro を入手
macOS 13 Ventura 以降 が必要です