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

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

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

Embulkは、CSVデータやアクセスログなどの構造化データを高い信頼性で転送することができる、プラグインベースのバルクデータローダーです。

BigQuery

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

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

受付中

bigqueryテーブルのデータ型変換につきまして

raccoondog
raccoondog

総合スコア0

Embulk

Embulkは、CSVデータやアクセスログなどの構造化データを高い信頼性で転送することができる、プラグインベースのバルクデータローダーです。

BigQuery

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

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

1回答

0評価

0クリップ

2715閲覧

投稿2019/04/09 23:34

編集2022/01/12 10:55

Bigqueryのテーブルにデータ型がFLOATの列があります。
FLOATの列を、NUMERICの列にしたいです。

特定列のみを指定してCAST関数で変換可能でしょうか?

また、Oracle⇒embulk⇒bigquery でデータ型が自動的に変換されるのは仕様でしょうか?
embulkで事前にデータ型を指定して(NUMMERICになるように)bigqueryへインサートさせれば
想定通りのテーブルが構成されますでしょうか?

例、列名:ORDER_NO Oracle:NUMBER(15) ↓自動解析 embulk:double ↓自動解析 bigquery:float

※OracleのVIEWは使用せず、対応したいです。

※2019/4/16

環境:oracle 12c、embulk 0.9.15 ※Oracle定義 SQL> desc T_RS_TRAN 名前 NULL? 型 ----------------------------------------- -------- ---------------------------- ORDER_NO NOT NULL NUMBER(15) RS_TYPE NOT NULL VARCHAR2(1) FACTORY_CODE NOT NULL VARCHAR2(4) ORG_CODE NOT NULL VARCHAR2(3) TRAN_DATE NOT NULL DATE HINBAN NOT NULL VARCHAR2(40) QTY NOT NULL NUMBER(11,2) SLIP_NO NOT NULL VARCHAR2(10) ITEM_NO NOT NULL VARCHAR2(2) DIVISION_NO NUMBER(1) ●● ●● ●● INV_INFO_UPDATE_FLAG VARCHAR2(1) ※実行ログ 2019-04-16 16:47:24.274 +0900 [ERROR] (0001:transaction): embulk-output-bigquery: failed during waiting a Copy job, get_job(yzk-gcp-project, embulk_copy_job_ec19947a-757f-4119-9620-7ccdeb023777), errors:[{:reason=>"invalid", :message=>"Provided Schema does not match Table yzk-gcp-project:srdcs_data.T_RS_TRAN_20190416. Field ORDER_NO has changed type from NUMERIC to STRING"}] 2019-04-16 16:47:24.276 +0900 [INFO] (0001:transaction): embulk-output-bigquery: Delete table... yzk-gcp-project:srdcs_data.LOAD_TEMP_eb1cab64_4892_425b_bf29_d279cc655440_T_RS_TRAN_20190416 2019-04-16 16:47:24.590 +0900 [INFO] (0001:transaction): embulk-output-bigquery: delete /var/tmp/embulk_output_bigquery_20190416-15487-1vrnvze.15487.2004.csv 2019-04-16 16:47:24.590 +0900 [INFO] (0001:transaction): embulk-output-bigquery: delete /var/tmp/embulk_output_bigquery_20190416-15487-1vrnvze.15487.2006.csv 2019-04-16 16:47:24.591 +0900 [INFO] (0001:transaction): embulk-output-bigquery: delete /var/tmp/embulk_output_bigquery_20190416-15487-1vrnvze.15487.2008.csv 2019-04-16 16:47:24.591 +0900 [INFO] (0001:transaction): embulk-output-bigquery: delete /var/tmp/embulk_output_bigquery_20190416-15487-1vrnvze.15487.2010.csv 2019-04-16 16:47:24.591 +0900 [INFO] (0001:transaction): embulk-output-bigquery: delete /var/tmp/embulk_output_bigquery_20190416-15487-1vrnvze.15487.2012.csv org.embulk.exec.PartialExecutionException: org.jruby.exceptions.RaiseException: (Error) failed during waiting a Copy job, get_job(yzk-gcp-project, embulk_copy_job_ec19947a-757f-4119-9620-7ccdeb023777), errors:[{:reason=>"invalid", :message=>"Provided Schema does not match Table yzk-gcp-project:srdcs_data.T_RS_TRAN_20190416. Field ORDER_NO has changed type from NUMERIC to STRING"}] at org.embulk.exec.BulkLoader$LoaderState.buildPartialExecuteException(BulkLoader.java:340) at org.embulk.exec.BulkLoader.doRun(BulkLoader.java:566) at org.embulk.exec.BulkLoader.access$000(BulkLoader.java:35) at org.embulk.exec.BulkLoader$1.run(BulkLoader.java:353) at org.embulk.exec.BulkLoader$1.run(BulkLoader.java:350) at org.embulk.spi.Exec.doWith(Exec.java:22) at org.embulk.exec.BulkLoader.run(BulkLoader.java:350) at org.embulk.EmbulkEmbed.run(EmbulkEmbed.java:178) at org.embulk.EmbulkRunner.runInternal(EmbulkRunner.java:292) at org.embulk.EmbulkRunner.run(EmbulkRunner.java:156) at org.embulk.cli.EmbulkRun.runSubcommand(EmbulkRun.java:436) at org.embulk.cli.EmbulkRun.run(EmbulkRun.java:91) at org.embulk.cli.Main.main(Main.java:64) Caused by: org.jruby.exceptions.RaiseException: (Error) failed during waiting a Copy job, get_job(yzk-gcp-project, embulk_copy_job_ec19947a-757f-4119-9620-7ccdeb023777), errors:[{:reason=>"invalid", :message=>"Provided Schema does not match Table yzk-gcp-project:srdcs_data.T_RS_TRAN_20190416. Field ORDER_NO has changed type from NUMERIC to STRING"}] at RUBY.wait_load(/export/home/srdcs/.embulk/lib/gems/gems/embulk-output-bigquery-0.4.9/lib/embulk/output/bigquery/bigquery_client.rb:346) at RUBY.block in copy(/export/home/srdcs/.embulk/lib/gems/gems/embulk-output-bigquery-0.4.9/lib/embulk/output/bigquery/bigquery_client.rb:289) at RUBY.with_job_retry(/export/home/srdcs/.embulk/lib/gems/gems/embulk-output-bigquery-0.4.9/lib/embulk/output/bigquery/bigquery_client.rb:58) at RUBY.copy(/export/home/srdcs/.embulk/lib/gems/gems/embulk-output-bigquery-0.4.9/lib/embulk/output/bigquery/bigquery_client.rb:249) at RUBY.transaction(/export/home/srdcs/.embulk/lib/gems/gems/embulk-output-bigquery-0.4.9/lib/embulk/output/bigquery.rb:407) at RUBY.transaction(uri:classloader:/gems/embulk-0.9.15-java/lib/embulk/output_plugin.rb:64) Error: org.jruby.exceptions.RaiseException: (Error) failed during waiting a Copy job, get_job(yzk-gcp-project, embulk_copy_job_ec19947a-757f-4119-9620-7ccdeb023777), errors:[{:reason=>"invalid", :message=>"Provided Schema does not match Table yzk-gcp-project:srdcs_data.T_RS_TRAN_20190416. Field ORDER_NO has changed type from NUMERIC to STRING"}] oracle⇒embulk⇒embulk_plugin⇒bigquery【処理結果】 NUMBER⇒double※embulkにより自動変換⇒float⇒float【●】 NUMBER⇒double※embulkにより自動変換⇒float⇒NUMERIC【×】 NUMBER⇒long※embulkの定義で強制変換⇒integer⇒NUMERIC【×】 NUMBER⇒string※embulkの定義で強制変換⇒string⇒NUMERIC【×】

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Embulk

Embulkは、CSVデータやアクセスログなどの構造化データを高い信頼性で転送することができる、プラグインベースのバルクデータローダーです。

BigQuery

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

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。