通过python代码将google云存储中的数据上传到分区表

通过python代码将google云存储中的数据上传到分区表,python,google-bigquery,Python,Google Bigquery,我有一个巨大的日志表存储在谷歌云存储。查询它变得越来越昂贵,我必须找到一个解决方案,我认为这就是对表进行分区 我可以自己将旧数据从大表上传到新创建的分区表,但我正在努力修改现有的python代码,该代码每天都从存储加载数据到biguqery表。我希望它提供已经按不同日期划分的数据 def bq_load(filename): bq_load_cmd = 'bq load --skip_leading_rows=1 --source_format=' + format + ' ' + sc

我有一个巨大的日志表存储在谷歌云存储。查询它变得越来越昂贵,我必须找到一个解决方案,我认为这就是对表进行分区

我可以自己将旧数据从大表上传到新创建的分区表,但我正在努力修改现有的python代码,该代码每天都从存储加载数据到biguqery表。我希望它提供已经按不同日期划分的数据

def bq_load(filename):
    bq_load_cmd = 'bq load --skip_leading_rows=1 --source_format=' + format + ' ' + schema + '.' + table + ' ' + google_bucket + '/' + filename
    print bq_load_cmd
    bq_load_cmd_out = commands.getstatusoutput(bq_load_cmd)
    print bq_load_cmd_out
    bq_status = bq_load_cmd_out[0]
    if bq_status == 0:
        print 'Bq load successfull filename : ' + filename
    else:
        print 'Error loading the file in bq : ' + filename
        mail_cmd = 'mail -s " bq load error hasoffer_clicks" '  + recipient + ' < /dev/null'
        mail_cmd = commands.getstatusoutput(mail_cmd)
def bq_加载(文件名):
bq_load_cmd='bq load--skip_leading_rows=1--source_format='+format+''+schema+'.+table+''+google_bucket+'/'+文件名
打印bq\U load\U cmd
bq\u load\u cmd\u out=commands.getstatusoutput(bq\u load\u cmd)
打印bq\u加载\u命令\u输出
bq\U状态=bq\U加载\U命令\U输出[0]
如果bq_状态==0:
打印“Bq加载成功文件名:”+文件名
其他:
打印“加载bq中的文件时出错:”+文件名
mail_cmd='mail-s“bq加载错误hasoffer_单击“'+收件人+”
这是我现在正在使用的代码的一部分,它位于crontab中,每天将csv文件加载到BigQuery的表中。 我在网上搜索,但到目前为止,我还没有弄明白哪一个是解决我问题的正确方法。我认为bq load命令可能是要修改的命令,但我不确定

有什么建议吗? 亲切问候,,
Eugenio

首先,您应该从非分区表迁移到分区表,为此,您可以在此处查看:

其次,要将数据插入到您应该在代码装饰器中使用的特定分区中,请执行以下操作:

table + '$20171107'
如果需要插入特定分区的更多详细信息,请查看:


仅此而已:)

有没有办法不使用查询就从非分区转换为分区,因为对于大量数据来说这可能非常昂贵