データ型とセマンティック型

コミュニティ コネクタを作成する場合、スキーマに定義する各フィールドにはデータ型が必要です。データ型は、BOOLEANSTRINGNUMBER などのフィールドのプリミティブ型を定義します。

データポータルでは、データ型だけでなくセマンティック型も使用します。 セマンティック型は、データが表す情報の種類を記述することができます。たとえば、NUMBER データ型のフィールドでは意味的に通貨額や割合を表したり、STRING データ型のフィールドでは意味的に都市を表したりすることができます。利用可能なセマンティック型を確認するには、セマンティック型に関するドキュメントをご覧ください。

コミュニティ コネクタのスキーマとデータポータルのフィールド

コミュニティ コネクタのスキーマを定義する場合、各フィールドのさまざまなプロパティでそのフィールドのデータポータルでの表示方法や使用方法を決めます。例:

  • コンセプト型は、conceptType プロパティを使用してコネクタ スキーマで定義します。このプロパティによって、フィールドをディメンションとして扱うか指標として扱うかが決まります。指標とディメンションの違いについては、ディメンションと指標をご覧ください。
  • セマンティック型も、コネクタ スキーマで定義できます。コネクタに定義されているデータ型プロパティとコネクタから返されるデータ値に基づいて、データポータルで自動的に検出することもできます。この仕組みについて詳しくは、自動セマンティック型検出をご覧ください。
  • 集計型によって、指標値を再集計できるかどうかが決まります(ディメンションは無視されます)。semantics.isReaggregatable プロパティを true に設定すると、デフォルトで SUM 集計になります。それ以外の場合は、Auto に設定されます。defaultAggregationType プロパティを使用すると、再集計可能なフィールドのデフォルトの集計型を手動で設定することもできます。

データポータルのコネクタを使用して設定と接続を行うと、フィールド エディタに、上述のプロパティの定義内容に基づいてコネクタのスキーマ全体が表示されます。セマンティック型を含めている場合は、定義したとおりに表示されます。自動セマンティック型検出を使用している場合は、検出されたとおりにフィールドが表示されます。フィールド画面

セマンティック情報の設定

セマンティック情報を設定する方法は 2 つあります。フィールドのセマンティクスを手動で設定する方法とデータポータルで自動的に検出させる方法です。

たとえば、意味的に米ドルを表す数値がある場合、データポータルはこのセマンティック型を自動的に検出できません。 また、自動セマンティック検出では、スキーマのフィールドごとにデータポータルによるデータ取得の呼び出しが必要になります。代わりにスキーマを手動で指定すると、データ取得の呼び出しは行われません。データのセマンティック型(通貨、割合、日付など)がわかっている場合は、精度とパフォーマンス上の理由からスキーマにセマンティック型を明示的に設定することをおすすめします。

セマンティック型の手動設定(推奨)

セマンティック型がわかっている場合は、各スキーマ フィールドの semantics を手動で定義できます。利用可能なプロパティについて詳しくは、フィールドのリファレンス ページをご覧ください。手動セマンティック型を定義する場合は、すべてのフィールドに対して semanticTypesemanticGroup を定義することをおすすめします。これらのプロパティを手動で指定すると、自動セマンティック型検出プロセスは実行されません。一部のフィールドのみを手動で設定した場合、指定していないフィールドは、そのフィールドに指定された dataType に応じて、デフォルトで TextNumber、または Boolean に設定されます。

セマンティック型を手動で設定しているシンプルなスキーマの例を次に示します。Income は通貨に設定され、Filing Year は日付に設定されます。

data-studio/semantics.gs
 var schema = [
  {
    'name': 'Income',
    'label': 'Income (in USD)',
    'dataType': 'NUMBER',
    'semantics': {
      'conceptType': 'METRIC',
      'semanticGroup': 'CURRENCY',
      'semanticType': 'CURRENCY_USD'
    }
  }, {
    'name': 'Filing Year',
    'label': 'Year in which you filed the taxes.',
    'dataType': 'STRING',
    'semantics': {
      'conceptType': 'METRIC',
      'semanticGroup': 'DATE_OR_TIME',
      'semanticType': 'YEAR'
    }
  }
];

手動セマンティック型のトラブルシューティング

基になるデータに対してセマンティック型を正しく設定していない場合、データが適切に表示されません。テストで問題を特定するのは難しい場合がありますが、以下のヒントを参考にしてください。

  1. データからすべての行ではなく 2 行または 3 行を返し、手動でチェックします。
  2. データポータルで、チェックしたいフィールドのみを含む表を作成します。
  3. 形式が厳密な Geo フィールドと Date フィールドは、特に注意して確認してください。

自動セマンティック型検出

スキーマでセマンティック型を定義していない場合、データポータルはデータ型プロパティとコネクタから返されるデータ値の形式に基づいて、セマンティック型の自動検出を試みます。

自動検出のプロセスは次のとおりです。

  1. コミュニティ コネクタの getSchema 関数を実行してスキーマをリクエストします。
  2. コネクタ スキーマで定義されている一群のフィールドを反復処理し、getData リクエストをフィールドに対して発行します。getData リクエストには、true に設定された sampleExtraction パラメータが含まれます。これは、このデータ リクエストがセマンティック検出を目的としていることを示すためです。
  3. フィールド データ型と getData リクエストから返された値の形式に基づいて、フィールドのセマンティック型を識別します。

自動セマンティック型検出を制御するオプション

データポータルがセマンティック検出を目的としてコミュニティ コネクタの getData 関数を実行すると、受信リクエストには、true に設定された sampleExtraction プロパティが含まれます。コネクタから返されるデータは、フィールドのセマンティック型をデータポータルで識別するためにのみ使用されます。この値は他の目的には使用されないため、外部ソースからの実際のデータは必要ありません。

コードでセマンティック型検出を改善するには、次のようないくつかの方法があります。

  • 推奨: 事前定義された値を渡す
    フィールドのセマンティック型を最もよく表し、データポータルで適切に検出されることがわかっている、各フィールドの事前定義された値を返します。 たとえば、フィールドのセマンティック型が Country の場合、イタリアを表す IT などの値を返します。データを取得するためにサードパーティ サービスに対して HTTP リクエストを行う必要がないため、この方法には検出プロセスを高速化できるという利点もあります。

  • n 個のレコードのみを返す
    データ取得に使用するサードパーティ サービスで、データ リクエスト時の行数制限がサポートされている場合は、すべてのデータセットではなく行の小さなサブセットをデータポータルに返します。これにより、セマンティック検出のリクエストごとにデータポータルに渡されるデータ量を抑えることができます。

  • すべての列をリクエストし、レスポンスをキャッシュする
    データ取得に使用するサードパーティ サービスにすべての列をリクエストできる場合は、データポータルから受け取る最初のセマンティック検出リクエストで、すべての列を取得して結果をキャッシュします。それ以降のセマンティック検出リクエストでは、サードパーティ サービスに対して追加の HTTP リクエストを行わずにキャッシュから列の値を取得します。

  • 特に何もしない
    sampleExtractiontrue に設定されているリクエストに対して具体的な対処を実装しないことを選択できます。この場合、データポータルはすべてのデータを取得しなければならないため、セマンティック検出プロセスが遅くなります。また、多くのセマンティック検出リクエストが並行して実行されるため、外部データソースへのリクエスト率にも影響があります。

自動セマンティック型検出で認識される形式

日時
  • YYYY/MM/DD-HH:MM:SS
  • YYYY-MM-DD [HH:MM:SS[.uuuuuu]]
  • YYYY/MM/DD [HH:MM:SS[.uuuuuu]]
  • YYYYMMDD [HH:MM:SS[.uuuuuu]]
  • Sat, 24 May 2008 20:09:47 GMT
  • 2008-05-24T20:09:47Z
  • 時間: 秒、マイクロ秒、ミリ秒、ナノ秒のエポック。
地域