質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
BigQuery

BigQueryは、Google Cloud Platformが提供しているビッグデータ解析サービス。数TB(テラバイト)またはPB(ペタバイト)の膨大なデータに対し、SQL風のクエリを実行し、高速で集計・分析を行うサービスです。

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

1回答

2833閲覧

RailsとBigQueryと接続したい。

kosuke_ikeura

総合スコア19

BigQuery

BigQueryは、Google Cloud Platformが提供しているビッグデータ解析サービス。数TB(テラバイト)またはPB(ペタバイト)の膨大なデータに対し、SQL風のクエリを実行し、高速で集計・分析を行うサービスです。

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/04/13 16:31

編集2022/01/12 10:55

環境

ruby 2.5.1
rails 5.2.4.1

前提・実現したいこと

Railsでウェブサービスを製作中です。
データベースにBigQueryを使用し、そこからデータを取ってきたいです。

発生している問題・エラーメッセージ

railsとBigQueryの認証がわかりません。
下記の記事を参考にしていますが、どこにソースコードを書くのか記載しておらず、わかりません。。
筆者がapiを利用することが初めてでapiを利用する上での当たり前がわからないことが原因かもしれません。。。

http://atsuya046.hatenablog.com/entry/2015/04/04/135134
https://qiita.com/ryurock/items/35cbdbd4f693fdc79bf8
http://tech.feedforce.jp/bigquery_tips.html
https://inside.pixiv.blog/2020/01/27/180000

該当のソースコード

特にソースコードをどこに書けばいいのかわからないです。
このソースコードはrails内のどこに記述すればいいですか?
この記事のソースコードです。

ruby

1require 'google/api_client' 2 3client = Google::APIClient.new(application_name: 'sample', application_version: '0.0.1') 4key = Google::APIClient::KeyUtils.load_from_pkcs12('p12のファイルパス', 'notasecret') 5scope = [ 6 'https://www.googleapis.com/auth/bigquery', 7 'https://www.googleapis.com/auth/cloud-platform', 8 'https://www.googleapis.com/auth/devstorage.read_only', 9 'https://www.googleapis.com/auth/devstorage.read_write', 10 'https://www.googleapis.com/auth/devstorage.full_control' 11] 12client.authorization = Signet::OAuth2::Client.new( 13 token_credential_uri: 'https://accounts.google.com/o/oauth2/token', 14 audience: 'https://accounts.google.com/o/oauth2/token', 15 scope: scope, 16 issuer: '123456789@developer.gserviceaccount.com', 17 signing_key: key) 18client.authorization.fetch_access_token! 19 20api = client.discovered_api('bigquery', 'v2')

試したこと

BigQueryのサービスアカウントを作成し、秘密鍵入手、p12 key取得など、BigQuery側で行う作業は完了しています。
この記事で行うクライアントIDの作成をして、keyなど使うものは全て控えています。
記事通りに進めて、最後モデルの作成をしようとしたところエラーがでました。

ruby

1rails g model Example 2/home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require': cannot load such file -- google/api_client (LoadError) 3 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' 4 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/loaded_features_index.rb:89:in `register' 5 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' 6 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:41:in `rescue in require' 7 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:27:in `require' 8 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:291:in `block in require' 9 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:257:in `load_dependency' 10 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:291:in `require' 11 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bigbroda-0.0.7/lib/google_bigquery.rb:3:in `<top (required)>' 12 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' 13 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' 14 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' 15 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' 16 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require' 17 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:291:in `block in require' 18 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:257:in `load_dependency' 19 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:291:in `require' 20 from /home/vagrant/chealsea-test-mysql/config/application.rb:4:in `<top (required)>' 21 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/spring-2.1.0/lib/spring/application.rb:92:in `require' 22 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/spring-2.1.0/lib/spring/application.rb:92:in `preload' 23 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/spring-2.1.0/lib/spring/application.rb:157:in `serve' 24 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/spring-2.1.0/lib/spring/application.rb:145:in `block in run' 25 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/spring-2.1.0/lib/spring/application.rb:139:in `loop' 26 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/spring-2.1.0/lib/spring/application.rb:139:in `run' 27 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/spring-2.1.0/lib/spring/application/boot.rb:19:in `<top (required)>' 28 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require' 29 from /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require' 30 from -e:1:in `<main>'

パーミッションなどを確認してもエラーを解決できなかったため、古い記事ということもあり、バージョン違いでできないと判断し、別記事で模索しています。

記事を複数のせ、回答者様の負担を増やしてしまい申し訳ございません。
どの記事の方法でも大丈夫ですので、記事の解説をしていただければと思います。
apiの勉強不足でありながら質問すること、大変恐縮でございますが、何卒よろしくお願いします。

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

BigQuery使ったことがなく検索しただけで恐縮ですが、

下記は利用できないでしょうか?

google-cloud-bigquery:https://github.com/googleapis/google-cloud-ruby/tree/master/google-cloud-bigquery


またご期待に添えるかわかりませんが、質問のファイル設置場所は下記になるかもしれません。
app/models/ga_client.rb

参考:http://bekkou68.hatenablog.com/entry/2014/08/20/222032


下記で適当に検索してみました。
「client = Google::APIClient.new(ap rails」

投稿2020/04/14 04:21

編集2020/04/14 04:22
no1knows

総合スコア3365

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問