fivetranでsync実行時、BigQuery Dataset Not Foundエラーが出た場合(Locationの設定違い)

2022.08.15

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

fivetranのDestinationをBigQueryにしたとき、data syncでBigQuery Dataset Not Foundというエラーが出てなかなか解決できずにハマった。

sync endのログ全文は以下のような感じ

{
  "event" : "sync_end",
  "data" : {
    "status" : "FAILURE_WITH_TASK",
    "reason" : "com.fivetran.warehouses.big_query.exceptions.BigQueryException: 404 Not Found\nPOST https://bigquery.googleapis.com/bigquery/v2/projects/[[プロジェクト名]]/jobs\n{\n  \"code\" : 404,\n  \"errors\" : [ {\n    \"domain\" : \"global\",\n    \"message\" : \"Not found: Dataset cm-alliance-prd:s3\",\n    \"reason\" : \"notFound\"\n  } ],\n  \"message\" : \"Not found: Dataset [[データセットID]]\",\n  \"status\" : \"NOT_FOUND\"\n}",
    "taskType" : "bigquery_dataset_not_found"
  },
  "created" : "2022-08-14T04:08:09.938Z",
  "connector_type" : "s3",
  "connector_id" : "geology_puerperal",
  "connector_name" : "s3.customer_subscriber_report_sample",
  "sync_id" : "80fb01e3-8ed3-43c6-b222-00ba1aadfee6"
}

先に結論から言いますと、データセットのロケーションがFivetranとBigqueryで違っていたことによって起こったエラーでした。

原因

データセットは存在しているのになんで? と色々と調べていたところ、実行エラー時に届いていたメールにヒントを発見した。

メールの内容は、

BigQuery DataSet Not Found
The following datasets have not been found while performing the warehouse operations.

s3;
Please make sure the dataset location is same as location given in big query setup form.

locationを見ろ と。

まずはfivetranのDestination設定を確認してみる。

Dataset Location の箇所が該当の設定で、 asia-northeast1 となっています。

Bigqueryの設定ではどうなっていたかというと、

USをロケーションにして作ってました。

この違いによりエラーが出ていたということです。

手動でBigqueryにデータセットを作成してしまっていて、その時に設定をミスったぽいです(USをロケーションにして保存してしまう)。

解決

FivetranでDestinationを作り直す or Bigqueryでデータセットを作り直す で解決できました。

今回は Bigqueryでデータセットを作り直す 方法を取りました。

Bigqueryでデータセットの削除 -> FivetranのConnectorsで Syncをやり直す

という手順を行うと、再度データセット、テーブルが作成され、データが反映されるようになりました。

fivetranでログを確認してみると、create_schemacreate_tableが行われていることを確認できました。