2017-07-13 13 views
-1

私は現在、データベースをbigqueryにアップロードするプロセスを実行しています。データをクエリして操作し、このデータをGoogleのクラウドストレージに送り返します。しかし、私はこのファイルを自動化したいのですが、これを行うために私のファイルに保存する必要があります。 GCSからBQにファイルをエクスポートできますが、コンピュータにファイルをエクスポートする方法を理解できません。助けてくれてありがとう。私はPythonを使用しています。クラウドストレージからコンピュータファイルにファイルを保存することはできますか?

def export_data_to_gcs(data, test12, destination): 
    bigquery_client = bigquery.Client(data) 
    dataset = bigquery_client.dataset('FirebaseArchive') 
    table = dataset.table('test12') 
    job_name = str(uuid.uuid4()) 

    job = bigquery_client.extract_table_to_storage(
     job_name, table, 'gs://firebase_results/test12.csv') 
    job.source_format = 'CSV' 

    job.begin() 

    wait_for_job(job) 



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) 

export_data_to_gcs(data, 'test12', destination) 

これは私がこれまでにBQから自分のクラウドにテーブルをエクスポートするコードです。

答えて

0

が、私はそれを考え出しました。それを必要とするすべての人に願います。わずかな修正を加えた上記の答えに似ています。

client = storage.Client(project=data) 
bucket = client.get_bucket('firebase_results') 
blob = bucket.blob('test2.csv') 
with open('test2.csv', 'w') as file_obj: 
    blob.download_to_file(file_obj) 
アイブ氏は、複数の異なる方法でこれをしようとしますが、このエラーを取得「はAttributeError: 『維持されて
0

あなたはGCSにテーブルをエクスポートしたら、ファイルをダウンロードするにはGCSクライアントを使用することができます。 https://googlecloudplatform.github.io/google-cloud-python/stable/storage-blobs.html#google.cloud.storage.blob.Blob.download_to_file

from google.cloud.storage import Blob 

client = storage.Client(project='my-project') 
bucket = client.get_bucket('firebase_results') 
encryption_key = 'c7f32af42e45e85b9848a6a14dd2a8f6' 
blob = Blob('test12.csv', bucket, encryption_key=encryption_key) 
with open('/tmp/my-downloaded-file', 'wb') as file_obj: 
    blob.download_to_file(file_obj) 
+0

strのパス『』オブジェクトが属性を持っていない』とはTypeError」私はdownload_to_filenameをしようとした場合、私はdownload_to_file試すか、このエラーが「:Unicodeに強制変換:必要な文字列またはバッファ、ファイル ' –

関連する問題