我切换到大查询,因为高性能。但是不知道如何将数据从上传到大型查询数据库。还有一些问题..。我可以直接访问我的数据库从谷歌云存储,同时使用大查询。我要先把它转换成某种格式吗?如何继续更新大查询数据库到我的谷歌云存储数据库。
提前谢谢。
发布于 2016-02-25 14:51:34
假设您的数据是支持的格式(如csv/tsv或json),您可以使用UI、CLI或API轻松地将数据从加载到BigQuery。例如,使用CLI:
bq load mydataset.mytable gs://my_bucket/file.csv name:string,gender:string,count:integer 这将把file.csv从'my_bucket‘加载到'mydataset’数据集中的表'mytable‘中。该表将有三列,类型字符串的名称和性别以及整数类型的计数。回顾BigQuery快速启动指南1可能会很有用
如果需要添加更多数据,只需再次运行bq load命令,默认情况下,它将将CSV中的新行附加到BigQuery的表中。如果需要覆盖数据,请添加--replace标志,以便在加载新数据之前删除现有内容。
此外,您甚至可以对中的文件运行查询,而无需首先使用外部表2将它们加载到BigQuery中。
发布于 2017-05-16 07:44:54
使用Python可以更新如下:
import numpy as np
import uuid
from gcloud import bigquery
def load_data_from_gcs(dataset_name, table_name, source):
bigquery_client = bigquery.Client()
dataset = bigquery_client.dataset(dataset_name)
table = dataset.table(table_name)
job_name = str(uuid.uuid4())
if table.exists():
table.delete()
table.schema = (
bigquery.SchemaField('ID', 'STRING'),
bigquery.SchemaField('days', 'STRING'),
bigquery.SchemaField('last_activ_date', 'STRING'),
)
table.create()
job_name = str(uuid.uuid4())
job = bigquery_client.load_table_from_storage(
job_name, table, source)
job.begin()
wait_for_job(job)
print('Loaded {} rows into {}:{}.'.format(
job.output_rows, dataset_name, table_name))
def wait_for_job(job):
while True:
job.reload()
if job.state == 'DONE':
if job.error_result:
raise RuntimeError(job.errors)
return
time.sleep(1)
if __name__ == "__main__":
load_data_from_gcs('my_model','my_output', 'gs://path-uat/data_project/my_output.csv')https://stackoverflow.com/questions/35623378
复制相似问题