KARTE Datahubには設定したジョブを自動で実行できるジョブフローという機能があります。ここでは、ジョブフローのエラー発生時に確認すべき点について紹介します。
前提知識
- KARTE Datahubに関する概要については、次の記事をご覧ください。
ジョブフローでエラーが発生するケース
次のようなケースでは、ジョブフロー実行時にエラーが発生します。
Case.1:正しいデータが連携されていない
データが誤っている場合にはエラーが発生します。よくある原因について紹介します。次のチェックポイントを確認してください。
Check.1:データ型が一致していない
データの連携元と連携先でデータ型が一致していない場合にはエラーが発生します。クエリの実行結果をデータセット内のデータテーブルに追加するケースを例にとります。
- クエリの実行結果(連携元)
item_id(INTEGER) | item_name(STRING) | price(INTEGER) |
---|---|---|
2 | 商品B | 2500 |
- データテーブル(連携先)
item_id(STRING) | item_name(STRING) | price(INTEGER) |
---|---|---|
1 | 商品A | 1000 |
item_id に注目すると、連携元ではデータ型がINTEGER になっているのに対して、連携先ではデータ型がSTRING になっています。このように、データ型が一致しない場合には実行時にエラーが発生します。データの連携元と連携先でデータが一致していることを確認した上でジョブフローを実行してください。
Check.2:必須項目のカラムにnullを連携している
nullを許容しない必須項目のカラムにnullを連携するとエラーが発生します。クエリの実行結果をデータセット内のデータテーブルに追加するケースを例にとります。
- クエリの実行結果(連携元)
item_id(INTEGER) | item_name(STRING) | price(INTEGER) |
---|---|---|
2 | null | 2500 |
- データテーブル(連携先)
item_id(INTEGER) | item_name(STRING)(Requied) | price(INTEGER) |
---|---|---|
1 | 商品A | 1000 |
item_nameに注目すると、nullを許容しないRequiredが設定されています。このような場合にnullを連携するとエラーが発生します。連携先でnullを許容しているか確認した上でジョブフローを実行してください。
Check.3:改行が含まれている
改行の利用は推奨しておりません。連携先の仕様によってはエラーが発生するケースがあることを確認しています。Amazon S3上のCSVファイルをデータセット内のデータテーブルに追加するケースを例にとります。
- Amazon S3上のCSVファイル(連携元)
item_id(INTEGER) | item_name(STRING) | description(STRING) |
---|---|---|
2 | 商品B | ミニマルでスタイリッシュなデザインは、あらゆるコーディネートにマッチ。 ビジネスシーンでも、カジュアルな日常使いでも、シーンを問わず活躍します。 |
- データテーブル(連携先)
item_id(INTEGER) | item_name(STRING) | description(STRING) |
---|---|---|
1 | 商品A | ミニマルでスタイリッシュなデザインは、あらゆるコーディネートにマッチ。ビジネスシーンでも、カジュアルな日常使いでも、シーンを問わず活躍します。 |
description に注目すると、入っているデータは同じですが連携元には改行が含まれていることが分かります。改行を含めたい場合は、以下のように「\n」などの改行コードを含めた上でジョブフローを実行してください。
改行コードを入れる前 | 改行コードを入れた後 |
---|---|
ミニマルでスタイリッシュなデザインは、あらゆるコーディネートにマッチ。 ビジネスシーンでも、カジュアルな日常使いでも、シーンを問わず活躍します。 |
ミニマルでスタイリッシュなデザインは、あらゆるコーディネートにマッチ。\nビジネスシーンでも、カジュアルな日常使いでも、シーンを問わず活躍します。 |
Case.2:正しいカラム名が使われていない
カラム名が誤っている場合にはエラーが発生します。よくある原因について紹介します。次のチェックポイントを確認してください。
Check.1:日本語カラムを使用している
日本語の利用は推奨しておりません。連携先の仕様によってはエラーが発生するケースがあることを確認しています。日本語ではなく英数字で指定してください。
推奨しないカラム名 | 推奨するカラム名 |
---|---|
商品ID | item_id |
Check.2:先頭が数字のカラムを使用している
先頭が数字のカラム名の利用は推奨しておりません。連携先の仕様によってはエラーが発生するケースがあることを確認しています。数字が先頭に入らないようにしてください。
推奨しないカラム名 | 推奨するカラム名 |
---|---|
1_item_id | item_id |
Check.3:カラム名が一致していない
データの連携元と連携先でカラム名が一致していないとエラーが発生します。Amazon S3上のCSVファイルをデータテーブルに追加するケースを例にとります。
- Amazon S3上のCSVファイル(連携元)
itemId(INTEGER) | itemName(STRING) | price(INTEGER) |
---|---|---|
4 | 商品D | 6000 |
- データテーブル(連携先)
item_id(INTEGER) | item_name(STRING) | price(INTEGER) |
---|---|---|
1 | 商品A | 3000 |
2 | 商品B | 4000 |
3 | 商品C | 5000 |
カラム名に注目すると、以下のように連携元と連携先で一致していないことが分かります。
連携元 | 連携先 |
---|---|
itemId | item_id |
itemName | item_name |
このように、カラム名が一致しない場合はエラーが発生します。
Case.3:文字コードが誤っている
エラーではないですが、KARTEに取り込むファイルの文字コードがUTF-8でない場合には文字化けすることがあります。文字コードがUTF-8であることを確認した上でジョブフローを実行してください。