テーブルの概要
BigQuery テーブルでは、個々のレコードが行の形式にまとめられています。各レコードは列(フィールドとも呼ばれる)で構成されています。
すべてのテーブルは、列名、データ型、その他の情報を記述するスキーマによって定義されます。テーブルのスキーマはテーブルの作成時に指定できます。あるいは、スキーマなしでテーブルを作成し、クエリジョブまたは読み込みジョブでスキーマを宣言してテーブルにデータを取り込むこともできます。
GoogleSQL を使用する場合はテーブル名を完全修飾するために projectname.datasetname.tablename
形式を使用します。また、bq コマンドライン ツールを使用する場合はテーブル名を完全修飾するために projectname:datasetname.tablename
形式を使用します。
テーブルタイプ
以下のセクションでは、BigQuery でサポートされているテーブルタイプについて説明します。
- 標準の BigQuery テーブル: BigQuery ストレージに格納された構造化データ。
- 外部テーブル: BigQuery の外部に格納されたデータを参照するテーブル。
- ビュー: SQL クエリを使用して作成される論理テーブル。
標準の BigQuery テーブル
標準の BigQuery テーブルには構造化データが含まれており、BigQuery ストレージにカラムナ フォーマットで格納されます。これには次のタイプが含まれます。
テーブル。スキーマを持ち、スキーマ内のすべてのカラムにデータ型があります。
テーブルの作成方法については、テーブルを作成するをご覧ください。
テーブル クローン。BigQuery テーブルの軽量で書き込み可能なコピーです。BigQuery は、テーブル クローンとそのベーステーブルの差分のみを保存します。
テーブル クローンの作成方法については、テーブル クローンを作成するをご覧ください。
テーブル スナップショット。テーブルのポイントインタイム コピーです。読み取り専用ですが、テーブル スナップショットからテーブルを復元できます。BigQuery では、スナップショットとベーステーブルで異なるバイトが保存されるため、通常、テーブル スナップショットでは、使用するストレージがテーブルの完全なコピーよりも少なくなります。
テーブル スナップショットの作成方法については、テーブル スナップショットを作成するをご覧ください。
外部テーブル
外部テーブルは BigQuery ストレージの外部に格納され、BigQuery の外部に格納されたデータを参照します。詳細については、外部データソースの概要をご覧ください。外部テーブルには次のタイプがあります。
BigLake テーブル。Cloud Storage、Amazon Simple Storage Service(Amazon S3)、Azure Blob Storage などのデータストアに保存されている構造化データを参照します。これらのテーブルでは、テーブルレベルできめ細かなセキュリティを適用できます。
BigLake テーブルの作成方法については、次のトピックをご覧ください。
オブジェクト テーブル。Cloud Storage などのデータストアに保存されている非構造化データを参照します。
オブジェクト テーブルの作成方法については、オブジェクト テーブルを作成するをご覧ください。
BigLake 以外の外部テーブル。Cloud Storage、Google ドライブ、Bigtable などのデータストアに保存されている構造化データを参照します。BigLake テーブルとは異なり、これらのテーブルではテーブルレベルできめ細かいセキュリティを適用できません。
BigLake 以外の外部テーブルを作成する方法については、次のトピックをご覧ください。
ビュー
ビューは、SQL クエリを使用して定義される論理テーブルです。これには次のタイプが含まれます。
ビュー。SQL クエリを使用して定義される論理テーブルです。これらのクエリは、ビューがクエリされるたびに実行されるビューを定義します。
ビューの作成方法については、ビューを作成するをご覧ください。
マテリアライズド ビュー。事前に計算されたビューです。ビュークエリの結果を定期的にキャッシュに保存します。キャッシュに保存された結果は BigQuery ストレージに保存されます。
マテリアライズド ビューの作成方法については、マテリアライズド ビューを作成するをご覧ください。
テーブルの制限事項
BigQuery テーブルには以下の制限があります。
- テーブル名はデータセットごとに一意である必要があります。
- BigQuery テーブルデータをエクスポートするとき、宛先にできるのは Cloud Storage のみです。
- API 呼び出しを使用する場合、データセット内のテーブル数が 50,000 件に近づくと、列挙のパフォーマンスが低下します。
- Google Cloud コンソールでは、データセットごとに最大 50,000 個のテーブルを表示できます。
BigQuery 外部テーブルの制限については、次のトピックをご覧ください。
テーブルの割り当て
割り当てには以下のようなものがあり、テーブルに対して実行されるさまざまな種類のジョブに割り当てと上限が適用されます。
- テーブルにデータを読み込む(読み込みジョブ)
- テーブルからデータをエクスポートする(エクスポート ジョブ)
- テーブルデータをクエリする(クエリジョブ)
- テーブルのコピー(コピージョブ)
割り当てと上限については、割り当てと上限をご覧ください。
テーブルの料金
BigQuery でテーブルを作成して使用する場合、テーブルおよびパーティションに格納されるデータの量とデータに対して実行するクエリに基づいて、使用料が発生します。
データの読み込み、コピー、エクスポートなど、多くのテーブル オペレーションは無料です。これらのオペレーションは無料ですが、BigQuery の割り当てと上限が適用されます。すべての無料オペレーションについては、料金ページの無料のオペレーションをご覧ください。
テーブルのセキュリティ
BigQuery でテーブルへのアクセスを制御するには、テーブルのアクセス制御の概要をご覧ください。
次のステップ
- テーブルを作成して使用する方法を学習する。
- テーブルを管理する方法を学習する。
- テーブル スキーマを変更する方法を学習する。
- テーブルデータの操作について学習する。