KARTE Datahubには設定したジョブを自動で実行できるジョブフローという機能があります。ここでは、ジョブフローで実現できることとエラー発生時に確認すべき点について紹介します。

前提知識

  • KARTE Datahubに関する概要については、次の記事をご覧ください。

ジョブフローで実現できること

ジョブフローを利用することで、KARTE内部や外部サービスとのデータ連携を自動で行うことができます。例えば、以下のようなことが実現できます。

  • KARTE内部とのデータ連携
    • クエリの実行結果をアクションテーブル・紐付けテーブルへエクスポート
    • 紐付けテーブルをデータセット内のデータテーブルへインポート
  • KARTE外部とのデータ連携
    • クエリの実行結果をAmazon S3へエクスポート
    • クエリの実行結果をGoogle Cloud Storageへエクスポート
    • Amazon S3からデータテーブルへインポート
    • Google Cloud Storageからデータテーブルへインポート

ジョブフローの設定および外部サービスとの連携については、次の記事をご覧ください。

ジョブフローでエラーが発生するケース

次のようなケースでは、ジョブフロー実行時にエラーが発生します。

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であることを確認した上でジョブフローを実行してください。