出现该错误通常是由于目标表的可用性问题,可以通过以下代码进行解决:
from google.cloud import bigquery
client = bigquery.Client()
table_id = "project_id.dataset_id.table_id"
table = client.get_table(table_id)
if table.delete_contents: print("Table content is deleteable") else: raise Exception("Table content is not deleteable")
如果上述代码返回“Table content is not deleteable”,则说明目标表正在进行某些操作且不可用。需要等待操作完成后再次尝试写入。
from google.cloud import bigquery
client = bigquery.Client()
table_id = "project_id.dataset_id.table_id"
test_message = {"test_key": "test_value"}
try: rows = [{'test_key': test_message}] insert_response = client.insert_rows_json(table_id, rows, skip_invalid_rows=False) print(f"Write success: {insert_response}")
except Exception as error: print(f"Write failed: {error}")
如果上述代码返回“Write failed: server_shutting_down”,则说明目标表不可用,需要等待后再次进行写入。
综上所述,BigQuery Storage Write / managedwriter api 返回错误 server_shutting_down的解决方法是,检查目标表的状态并等待其可用后进行写入。同时,可以使用写入测试方法进行排除。