2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【BigQuery】ローカルのCSVファイルをPythonでBigQueryにアップロードする簡単な手順

Last updated at Posted at 2024-03-07

ローカルにあるCSVファイルをGoogle CloudのBigQueryにアップロードする方法を詳しく説明します。データ分析やビッグデータの処理にBigQueryを使用している方々にとって、このステップバイステップのガイドはとても役立つでしょう。

前準備

■Google Cloud Platform (GCP) アカウントの作成
まず、GCPにアクセスし、アカウントを作成します。アカウントがない場合はこちらから作成できます。
プロジェクトの作成:GCPダッシュボードで新しいプロジェクトを作成します。

■BigQuery APIの有効化
作成したプロジェクトでBigQuery APIを有効にします。

■サービスアカウントの作成と秘密鍵の取得
GCPのIAM & 管理セクションに移動します。
新しいサービスアカウントを作成し、適切な権限を付与します(例:BigQuery Admin)。
サービスアカウントの秘密鍵をJSON形式で生成し、安全な場所に保存します。

手順

■環境のセットアップ
Pythonと必要なライブラリ(google-cloud-bigquery、pandas)がインストールされていることを確認します。

■サービスアカウントの秘密鍵を使用するためのBigQueryクライアントの初期化

from google.cloud import bigquery
import pandas as pd

# BigQueryのクライアントを作成
file_path = "your_service_account_key.json"
client = bigquery.Client.from_service_account_json(file_path)

# csvファイルの読み込み
source_df = pd.read_csv("your_local_csv_file.csv", encoding='shift_jis')

dataset_id = 'your_dataset_id'
original_table_id = 'your_table_id'
table_ref = client.dataset(dataset_id).table(original_table_id)
job_config = bigquery.LoadJobConfig()
job_config.autodetect = True  # スキーマの自動検出
job_config.write_disposition = bigquery.WriteDisposition.WRITE_TRUNCATE  # 上書き
job = client.load_table_from_dataframe(source_df, table_ref, job_config=job_config)
job.result()  # アップロードの完了を待機

以上でローカルにあるCSVファイルをBigQueryに簡単にアップロードできます。データの分析やビジュアライゼーションを始める準備が整いました。何か質問があれば、コメント欄にてお気軽にお尋ねください。

注意点

データの機密性やセキュリティに十分注意してください。サービスアカウントの秘密鍵は安全な場所に保管してください。
BigQueryにはコストが発生する場合がありますので、料金体系についても確認しておくことをお勧めします。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?