要防止本地文件上传到BigQuery,可以使用以下解决方法:
from google.cloud import bigquery
def upload_local_file_to_bigquery(dataset_id, table_id, file_path):
client = bigquery.Client()
dataset_ref = client.dataset(dataset_id)
table_ref = dataset_ref.table(table_id)
job_config = bigquery.LoadJobConfig()
job_config.source_format = bigquery.SourceFormat.CSV
with open(file_path, "rb") as source_file:
job = client.load_table_from_file(source_file, table_ref, job_config=job_config)
job.result() # Wait for the job to complete
print("File uploaded to BigQuery.")
# 示例用法
dataset_id = "your-dataset-id"
table_id = "your-table-id"
file_path = "path/to/local/file.csv"
upload_local_file_to_bigquery(dataset_id, table_id, file_path)
from google.cloud import bigquery
def import_data_from_cloud_storage(dataset_id, table_id, bucket_name, file_path):
client = bigquery.Client()
dataset_ref = client.dataset(dataset_id)
table_ref = dataset_ref.table(table_id)
external_config = bigquery.ExternalConfig("CSV")
external_config.source_uris = ["gs://{}/{}".format(bucket_name, file_path)]
external_config.options.skip_leading_rows = 1
table = bigquery.Table(table_ref, schema=schema)
table.external_data_configuration = external_config
client.create_table(table)
print("Data imported from Cloud Storage.")
# 示例用法
dataset_id = "your-dataset-id"
table_id = "your-table-id"
bucket_name = "your-bucket-name"
file_path = "path/to/file.csv"
import_data_from_cloud_storage(dataset_id, table_id, bucket_name, file_path)
这些方法都可以避免直接上传本地文件到BigQuery,从而提高数据的安全性和可控性。