この記事は公開されてから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_schema
とcreate_table
が行われていることを確認できました。