私は新しいプロジェクトでBigQuery Standard SQLを使用したいと思いますが、スキーマを定義する方法の例は見つかりません。すべてがレガシーSQLを指しています。特に、ARRAY
とSTRUCT
を使用したいと思います。Standard SQLを使用してBigQueryスキーマを定義する方法は?
0
A
答えて
1
BigQueryでテーブルを作成する1つの方法は、API呼び出しを使用することです。 CREATEテーブル構文はありません。テーブル
BigQueryの作成
は新しいテーブルas detailed hereを作成するためのさまざまな方法を提供しています:
-
あなたは、コマンドラインツールのBQのMKコマンドを使用するかのBigQuery APIテーブルを使用して空のテーブルを作成することができます
- .insert()メソッド。
- CSVまたはJSONデータファイル(圧縮または非圧縮)、Avroファイル、またはCloud Datastoreバックアップからテーブルを読み込むことができます。
- クエリ結果からテーブルを作成できます。
- あなたはあなたがあなたのテーブルのスキーマを定義するときは、標準のSQL型を使用することができます
- クラウドストレージ内のファイルの上にテーブルを定義することができます(Elliotts答えを参照)、更新する程度tichetがある
- テーブルをコピーすることができますドキュメントでも同様です。投票/星here。 Python samples are on GitHubの
たくさんの簡単なよう:
def create_table(dataset_name, table_name, project=None):
"""Creates a simple table in the given dataset.
If no project is specified, then the currently active project is used.
"""
bigquery_client = bigquery.Client(project=project)
dataset = bigquery_client.dataset(dataset_name)
if not dataset.exists():
print('Dataset {} does not exist.'.format(dataset_name))
return
table = dataset.table(table_name)
# Set the table schema
table.schema = (
bigquery.SchemaField('Name', 'STRING'),
bigquery.SchemaField('Age', 'INTEGER'),
bigquery.SchemaField('Weight', 'FLOAT'),
)
table.create()
print('Created table {} in dataset {}.'.format(table_name, dataset_name))
2
あなたは、標準のSQLタイプを使用してスキーマを持つテーブルを作成することができます。ここでは、有効なスキーマの例です。
{
"a": "ARRAY<STRUCT<x INT64, y STRING>>",
"b": "STRUCT<z DATE>",
"c": "INT64"
}
あなたは、このようなsample_schema.json
としてファイルにこれを入れた場合、あなたはbq mk
を使用して、それから、テーブルを作成することができます。
bq mk --schema sample_schema.json -t your_dataset.YourTableName
bq
クライアントの外では、 tables.insert
APIは、標準のSQL型名もサポートしています。
関連する問題
- 1. Standard SQL BigQueryをReDashに設定する方法
- 2. DataflowでBigQuery Standard SQLを使用するには?
- 3. Standard SQL - WebUIでBigQuery UDFを使用するには?
- 4. BigQuery Standard SQL UDFを使用するには?
- 5. BigQueryスキーマの定義/ドキュメント?
- 6. '$'デコレータを使用してStandard SQLでBigQueryパーティションにアクセスできますか?
- 7. Pythonのrun_async_query gcloud Legacy SQLの代わりにStandard SQLを使用するBigQuery
- 8. BigQuery Standard SQLで繰り返し可能なサンプリングを行う方法は?
- 9. SQLでグローバル変数を定義して使用する方法
- 10. Microsoft.SqlServer.Management.Smoを使用してSQLスキーマをプログラムでエクスポートする方法
- 11. XMLスキーマでユーザー定義データ型を定義する方法は?
- 12. BigQuery StandardでのQuantiles関数SQL
- 13. Microsoft SQL Serverで特定のスキーマを使用する方法2014
- 14. BigQueryスキーマ定義に列の説明を追加する
- 15. SQLまたはToadを使用してテーブル定義を抽出する方法
- 16. sqlを使用して階層内のレベル数を定義する方法は?
- 17. .NETでSQLユーザー定義関数を使用する方法は?
- 18. 別のスキーマからjsonスキーマ定義を参照する方法
- 19. DataGrip SQL DialectがBigQueryに最も近いものSTANDARD SQL(SQL 2011)
- 20. bqシェルを使用してBigQueryの標準SQLを有効にする方法
- 21. SQL(BigQuery)を使用してTF/IDFを計算するには
- 22. プライベートドッカーレジストリを使用してKubernetesジョブを定義する方法は?
- 23. noConflict()を使用してjQueryオブジェクトを定義する方法は?
- 24. 4点を使用してjava.awt.Rectangleを定義する方法は?
- 25. `Backbone.View.events`定義を使用してカスタムサブビューイベントをリスンする方法は?
- 26. Javaプログラムを介してBigqueryテーブルのスキーマを取得する方法は?
- 27. Motorを使用してMongoDBスキーマを定義する方法はありますか?
- 28. SQL Server Expressを使用してSQL Server Standard用に開発しますか?
- 29. カスタム構造タイプを定義して使用する方法は?
- 30. エンティティフレームワークでSQLユーザー定義型を使用する方法6
もっと多くのポインタをありがとうが、この例では 'STRUCT'型や' ARRAY'型の使用については触れていません。私は[bigquery.SchemaField'の実装を確認しました](https://github.com/GoogleCloudPlatform/google-cloud-python/blob/44b4d50e59f5d5ace419dcfbe2b04c2e07cadc57/bigquery/google/cloud/bigquery/schema.py#L24-L26 )、ドキュメントは明らかにレガシーSQLに関するものです。 – errordeveloper
あなたは少し混乱しています。したがって、SQLは、定義されたテーブルではないクエリにのみ使用されます。テーブルを作成するときは、そこにリストされているタイプを使用する必要があります。これはレガシーでも標準SQLでもなく、フィールド型のAPI定義です。テーブルを定義するときにJSONにリストされているタイプを使用し、標準SQLクエリを書くときは、単純に構造体または配列としてRECORDまたはREPEATEDの定義済みフィールドタイプを使用できます。 – Pentium10
ありがとう、ありがとう!これは理にかなっていますが、私はそれがより具体的に文書化されるべきだと考えています。新しいユーザーとしては、すでに2つの異なる言語バージョンを知っておく必要があります。 – errordeveloper