【BigQuery】既存のテーブルスキーマを新しいテーブルにインポートする
使い所
- 既存のテーブルに変更を加えたいとき
- テーブルのリージョンを変更したいとき
BigQueryは既存のテーブル名の変更やスキーマの変更はできず、新しくテーブルを作り直す必要がある。
その際にカラム数の多いテーブルだと手作業で1つずつスキーマを移すのが苦行なので、既存のテーブルのスキーマをエクスポートし、新しいテーブルにインポートする。
前提
- Google Cloud SDKのインストール・ログインが済んでいること。
手順
【export】 bqコマンドで既存のテーブルのスキーマを表示する
コンソールで以下のコマンドを実行する。(${}変数は自分のエクスポートしたいテーブルに置き換えること)
テーブル情報が表示されるので、"schema"キー以下の"fields"の始めから終わりをコピーする。
❯ bq --format=prettyjson show ${project_id}:${dataset_name}.${table_name}
{
"creationTime": "XXXXXXXXXXXXX",
"etag": "XXXXXXXXXXXXXX",
"id": "${project_id}:${dataset_name}.${table_name}",
︙
"schema": {
"fields": [
{
"mode": "NULLABLE",
"name": "hoge",
"type": "INTEGER"
},
{
"mode": "NULLABLE",
"name": "fuga",
"type": "STRING"
},
{
"mode": "NULLABLE",
"name": "piyo",
"type": "BOOLEAN"
}
]
}
︙
期待するクリップボードの中身
[
{
"mode": "NULLABLE",
"name": "hoge",
"type": "INTEGER"
},
{
"mode": "NULLABLE",
"name": "fuga",
"type": "STRING"
},
{
"mode": "NULLABLE",
"name": "piyo",
"type": "BOOLEAN"
}
]
【import】 Webコンソールからテーブル作成
Author And Source
この問題について(【BigQuery】既存のテーブルスキーマを新しいテーブルにインポートする), 我々は、より多くの情報をここで見つけました https://qiita.com/kterui9019/items/65cd06bf86080fe6f00f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .