Я использую BigQuery Python API вместе с соединителем BigQuery для Pandas .
Каждый раз, когда я append
обращаюсь к набору данных в BigQuery, я хочуубедитесь, что я начинаю с того места, где ушел в прошлый раз, чтобы предотвратить дублирование и потерю данных.
Есть ли в Загрузить конфигурацию задания параметр или что-то еще, что будет делать это автоматически?Если нет, как вы предлагаете мне обрабатывать ошибки подключения и загружать файлы, не допуская дублирования данных?Я знаю, что могу запросить последнюю строку и добавить данные, основанные на этом, но я предпочитаю не запрашивать, так как BigQuery взимает плату за запросы.
Вот что у меня есть для загрузки в BigQuery:
import pandas as pd
from google.cloud import bigquery, exceptions
test_df = pd.DataFrame({
'num_legs': [2, 4, 8, 0],
'num_wings': [2, 0, 0, 0],
'num_specimen_seen': [10, 2, 1, 8],
'names': ['falcon', 'dog', 'spider', 'fish']
})
project = "test-project"
dataset_id = "test-dataset"
table_id = "test-table"
client = bigquery.Client()
try:
dataset_ref = client.dataset(dataset_id=dataset_id, project=project)
dataset = client.get_dataset(dataset_ref)
except exceptions.NotFound:
print("specified dataset not found! -- creating a new dataset.")
dataset = client.create_dataset(dataset_id)
table_ref = dataset.table(table_id)
load_job = client.load_table_from_dataframe(
dataframe=test_df, destination=table_ref, project=project)
load_job.result()