Я знаю, что этот вопрос уже поднимался и, похоже, был решен ..
https://issuetracker.google.com/issues/35905194
Но можно ли это сделать с помощью Python?
У меня есть скрипт, который работает, когда я хочу обновить описания полей в таблице Big Query, но когда я запускаю точно такой же скрипт в представлении, ничего не происходит?
Сценарий запускается, и я не получаю никакой ошибки, но он просто не обновляет представление в Big Query
Я использую Python 2.7.13
Вот мой код ..
from google.cloud import bigquery
from datetime import datetime
import json
import sys
project='xxxx'
ds='xxxxx'
table_n='xxxxx'
startTime=datetime.now()
#Authorisation
filename='xxxxxx.json'
client = bigquery.Client.from_service_account_json(filename)
dataset_id = ds
table_id = table_n
table_schema= []
table_schema.append(bigquery.SchemaField('BWMI_ID', 'STRING', mode='NULLABLE'))
table_schema.append(bigquery.SchemaField('VP_VIN_PREFIX', 'STRING', mode='NULLABLE'))
table_schema.append(bigquery.SchemaField('CHASSIS_NUMBER', 'STRING', mode='NULLABLE'))
table_schema.append(bigquery.SchemaField('CAESAR_KEY', 'INTEGER', mode='NULLABLE'))
table_schema.append(bigquery.SchemaField('ID', 'INTEGER', mode='NULLABLE'))
table_schema.append(bigquery.SchemaField('VEH_ID', 'INTEGER', mode='NULLABLE'))
table_schema.append(bigquery.SchemaField('LOEV_ID', 'INTEGER', mode='NULLABLE'))
table_schema.append(bigquery.SchemaField('D42_LAST_UPDATED', 'TIMESTAMP', mode='NULLABLE'))
table_schema.append(bigquery.SchemaField('D42_END_DATE', 'TIMESTAMP', mode='NULLABLE'))
table_schema.append(bigquery.SchemaField('USER_1_ID', 'STRING', mode='NULLABLE'))
table_schema.append(bigquery.SchemaField('DESCRIPTION', 'STRING', mode='NULLABLE'))
table_schema.append(bigquery.SchemaField('DATE_ADDED', 'TIMESTAMP', mode='NULLABLE'))
table_schema.append(bigquery.SchemaField('DATE_ENDED', 'TIMESTAMP', mode='NULLABLE'))
table_schema.append(bigquery.SchemaField('SOURCE', 'STRING', mode='NULLABLE'))
table_schema.append(bigquery.SchemaField('CANCELLED', 'STRING', mode='NULLABLE'))
table_schema.append(bigquery.SchemaField('CANCELLED_DATE', 'TIMESTAMP', mode='NULLABLE'))
table_schema.append(bigquery.SchemaField('CRC32', 'STRING', mode='NULLABLE'))
table_schema.append(bigquery.SchemaField('CREATED_DATE', 'TIMESTAMP', mode='NULLABLE'))
original_schema=table_schema
table_ref = client.dataset(dataset_id).table(table_id)
table = bigquery.Table(table_ref, schema=original_schema)
new_schema= []
new_schema.append(bigquery.SchemaField('BWMI_ID', 'STRING', mode='NULLABLE', description = 'Updated by python script'))
new_schema.append(bigquery.SchemaField('VP_VIN_PREFIX', 'STRING', mode='NULLABLE', description = 'Updated by python script'))
new_schema.append(bigquery.SchemaField('CHASSIS_NUMBER', 'STRING', mode='NULLABLE', description = 'Updated by python script'))
new_schema.append(bigquery.SchemaField('CAESAR_KEY', 'INTEGER', mode='NULLABLE', description = 'Updated by python script'))
new_schema.append(bigquery.SchemaField('ID', 'INTEGER', mode='NULLABLE'))
new_schema.append(bigquery.SchemaField('VEH_ID', 'INTEGER', mode='NULLABLE'))
new_schema.append(bigquery.SchemaField('LOEV_ID', 'INTEGER', mode='NULLABLE', description = 'Updated by python script'))
new_schema.append(bigquery.SchemaField('D42_LAST_UPDATED', 'TIMESTAMP', mode='NULLABLE'))
new_schema.append(bigquery.SchemaField('D42_END_DATE', 'TIMESTAMP', mode='NULLABLE'))
new_schema.append(bigquery.SchemaField('USER_1_ID', 'STRING', mode='NULLABLE', description = 'Updated by python script'))
new_schema.append(bigquery.SchemaField('DESCRIPTION', 'STRING', mode='NULLABLE'))
new_schema.append(bigquery.SchemaField('DATE_ADDED', 'TIMESTAMP', mode='NULLABLE'))
new_schema.append(bigquery.SchemaField('DATE_ENDED', 'TIMESTAMP', mode='NULLABLE', description = 'Updated by python script'))
new_schema.append(bigquery.SchemaField('SOURCE', 'STRING', mode='NULLABLE'))
new_schema.append(bigquery.SchemaField('CANCELLED', 'STRING', mode='NULLABLE'))
new_schema.append(bigquery.SchemaField('CANCELLED_DATE', 'TIMESTAMP', mode='NULLABLE', description = 'Updated by python script'))
new_schema.append(bigquery.SchemaField('CRC32', 'STRING', mode='NULLABLE'))
new_schema.append(bigquery.SchemaField('CREATED_DATE', 'TIMESTAMP', mode='NULLABLE'))
table.schema = new_schema
table = client.update_table(table, ['schema'])