GoogleBigQueryを使用してデータにアクセスしてクエリを実行する方法を学びます。PythonとRの例で

こんにちは、Habr!



我々は最近、詳細な公表GoogleのBigQueryのデータウェアハウスでの作業についての本を本日、このトピックにもう一度簡単に触れ、PythonとRでBigQueryデータをクエリする方法に関する小さなケースを公開する



ことにしました。BigQueryを使用した機械学習に関する投稿に興味がある場合は、コメントでお知らせください







概要概要



この記事では、PythonとRを使用してGoogle BigQueryデータをロードする方法を確認してから、データをクエリして有用な洞察を引き出す方法について説明します。Google CloudBigQueryライブラリを使用してBigQueryPythonに接続し、bigrqueryライブラリを使用してRで同じことを行い



ます。また、Python / Rを使用したBigQueryデータ操作の2つの段階についても説明します。



  • GoogleBigQueryの接続とデータアクセス
  • Python / Rを使用したデータのクエリ


この記事では、すべてのユーザーデータがGoogleBigQueryに保存されていることを前提としています。



Python



Pythonは、データを操作するための最も人気のある汎用言語の1つです。柔軟性と使いやすさから注目と需要を享受しており、データサイエンスでは、サードパーティのシステムと対話するためのさまざまなライブラリとツールを誇っています。



Pythonを使用したGoogleBigQueryへの接続



Pythonを使用してGoogleBigQueryデータをクエリするには、PythonクライアントをBigQueryインスタンスに接続する必要があります。これは、Google BigQueryAPIのクラウドクライアントライブラリを使用します。 Pythonを使用してBigQueryに接続するための代替ソリューションもあります。たとえば、tylertreatのBigQuery-Pythonライブラリは素晴らしいです。



Google Cloud BigQueryライブラリは安定しており、Googleによって正式にサポートされているため、このライブラリを使用します。



これは、Python開発環境がすでにセットアップされていることを前提としています。

ライブラリをインストールするには、コマンドラインで次のコマンドを実行します。



pip install --upgrade google-cloud-bigquery


次に、クライアントをデータベースに接続します。これを行うには、BigQueryサービスの資格情報を含むJSONファイルをダウンロードする必要があります。お持ちでない場合は、次の方法で作成できます。次に、このJSONファイルをローカルマシンにダウンロードします。



すべての設定が完了したので、接続の初期化に進みます。これには、次のPythonコードが使用されます。



rom google.cloud import bigquery
	from google.oauth2 import service_account
	credentials = service_account.Credentials.from_service_account_file(
	'path/to/file.json')
	

	project_id = 'my-bq'
	client = bigquery.Client(credentials= credentials,project=project_id)


上記のスニペットでproject_idは、JSONファイルの場所をキーで指定し、' path/to/file.json'をローカルマシンに保存されているJSONファイルへの実際の正しいパスに置き換える必要もあります



Google BigQueryでは、プロジェクトは最上位のコンテナであり、すべてのデータセットに対するデフォルトのアクセス制御を提供します。



Pythonを使用したBigQueryデータのクエリ



BigQueryクライアントがセットアップされ、使用できるようになったので、多くのBigQueryデータをクエリできます。



これは、クエリジョブをBigQueryキューに配置するクエリメソッドを使用します。その後、要求は非同期で実行されます。つまり、遅延を指定せず、クライアントはジョブが完了するのを待ちます。これが発生すると、メソッドはQuery_Job結果を含むインスタンス返します



この方法の詳細については、こちらの公式ドキュメントをご覧ください



対象のPythonコードは次のようになります。



query_job = client.query("""
	   SELECT *
	   FROM dataset.my_table
	   LIMIT 1000 """)
	

	results = query_job.result() #   .


上記のクエリはデフォルトで標準のSQL構文になっていることに注意してください。従来のSQLを使用する場合、コードは次のようになります。



job_config.use_legacy_sql = True
	query_job = client.query("""
	   SELECT *
	   FROM dataset.my_table
	   LIMIT 1000""", job_config = job_config)
	

	results = query_job.result() #   .


R



R言語はPythonの一般的な代替手段であり、データサイエンスで積極的に使用されています。データの詳細で系統的な統計分析に関心がある場合



、Rと競合できる言語はほとんどありません。GoogleBigQueryを使用する場合、Rは、データのクエリと操作のための信頼性が高く使いやすいライブラリも提供します。ここでは、RStudioのリサーチディレクターであるHadleyWickhamによって作成および保守されているbigrqueryライブラリを使用します。



これは、Rで開発環境がすでにセットアップされていることを前提としています。そうでない場合は、このガイド使用してRStudioをセットアップしてください



RでGoogleBigQueryに接続する



bigrqueryをインストールするには、Rコンソールから次のコマンドを実行します。



install.packages(“bigrquery”)


とても簡単です!私たちは行く準備ができています。



Pythonと同様に、Google Cloud Servicesにアクセスするには、Rクライアントの承認が必要です。次のようにbigrqueryのドキュメント、承認URLを開くには、Rコンソールからプロンプトに従って、その後、コンソールにコードをコピーします。



注意:この承認は1回だけ行う必要があります。以降のすべてのリクエストでは、アクセス資格情報が自動的に更新されます。



Rを使用したBigQueryデータのクエリ



RでBigQueryデータをクエリするには、次の手順に従います。



  • Pythonで行われたように、GoogleCloudコンソールからプロジェクトIDを示します。
  • データを要求するためのクエリ文字列を作成しましょう。
  • query_execプロジェクトIDとクエリ文字列で呼び出しましょう


これをすべて行うためのコードは次のとおりです。



#  
	library(bigrquery)
	

	#   ID  
	project_id <- "your-project-id" 
	

	#  
	sql_string <- "SELECT * FROM dataset.my_table LIMIT 1000"
	

	#     
	query_results <- query_exec(sql_string, project = project_id, useLegacySql = FALSE)


Pythonと同様に、レガシーSQLで記述されたクエリを実行できます。関数内でuseLegacySqlTRUE変更することもできますquery_exec



結論



そこで、PythonとRで参照しながら、Google BigQueryに保存されたデータを操作することがいかに簡単で簡単かを調べました。



これら2つの言語では、この方法で処理されたデータに基づいて統計モデルを構築し、モデル自体をで使用することは難しくありません。さまざまな目的:ユーザーがアプリケーションでどのように動作するかを理解すること、解約率を予測することなど。



All Articles