ソース・データ型のEndeca Serverデータ型へのマッピング

ナレッジ・モジュールによってソース・データがEndeca Serverターゲットに書き込まれる際、データベース・ソースとEndeca Serverターゲット間でデータ型が正しくマップされていない場合にエラーが発生する可能性があります。

たとえば、Endeca Serverデータ型のmdex:timeには、直接対応するものがOracleデータベースにありません。mdex:timeをOracleのデータ型でこれに対応するものにマップしないと、ODIインタフェースの実行時に障害が発生する可能性があります。こうした場合は、ターゲットにおけるEndeca Serverのデータ型を、データベース・ソースにおいて対応するデータ型にマップできます。

次の表には、Endeca Serverデータ型の、対応するOracleおよびMySQLのデータ型へのマッピングが示されています。このマッピング情報は、SQLをサポートしている他のデータベースにも有効な場合があります。Endeca Serverデータ型の追加の詳細は、Oracle Endeca Server開発者ガイドを参照してください。

Endeca Server型 Oracle型 MySQL型 注意
mdex:boolean NUMBER TINYINT mdex:boolean型は、"true"/"false"および1/0の両方をブール値として受け入れます。したがって、varchar型およびint SQL型などの文字列SQL型はmdex:booleanにマップできます。
mdex:dateTime TIMESTAMP DATETIME SQL型のTIMESTAMPおよびDATETIMEは、mdex:dateTimeにマップできます。

入力テクノロジ(ステージング領域のテクノロジ)に日時型が存在しない場合は、かわりに文字列型を使用します。mdex:dateTimeにマップする文字列値は、パターン: yyyy '-' mm '-' dd 'T' hh ':' mm ':' ss {'.' s+} Zに一致する必要があります。

例: 2011-11-18T17:00:00Z

mdex:double NUMBER DOUBLE 数値型はmdex:doubleにマップできます。

文字列型もmdex:doubleにマップできますが、文字列値は有効な数値である必要があります。

mdex:duration VARCHAR2 VARCHAR SQL型に期間型はありません。期間値には文字列型を使用します。mdex:durationにマップする文字列値は、書式: 'P' {d 'D'} 'T' {h 'H'} {m 'M'} {s {'.' s+} 'S'}に一致する必要があります。

例: P429DT1H2M3S

mdex:geocode VARCHAR2 VARCHAR SQL型にジオコード型はありません。ジオコード値には文字列型を使用します。mdex:geocodeにマップする文字列値は、書式: 緯度値 経度値に一致する必要があります。

例: 42.365615 -71.075647

mdex:int NUMBER INT 整数型はmdex:intにマップできます。

文字列型もmdex:intにマップできますが、文字列値は有効な整数値である必要があります。

mdex:long NUMBER BIGINT 長整数型はmdex:longにマップできます。

文字列型もmdex:longにマップできますが、文字列値は有効な長整数値である必要があります。

mdex:string VARCHAR2 VARCHAR VARCHAR、VARCHAR2、TEXTなどの文字列SQL型はmdex:stringにマップできます。
mdex:time VARCHAR2 TIME mdex:time型は毎日繰り返す特定の時間を表します。

MySQLでは、時間値がTIME型でサポートされています。

OracleデータベースにはTIME型がありません。mdex:timeには文字列型を使用しますが、文字列値は書式: hh ':' mm ':' ss {'.' s+} Zに一致する必要があります。

例: 18:30:00Z

ソースのデータ型をEndeca Serverのデータ型にマップするには、次の手順を実行します。

  1. ODI Studioで、「トポロジ」タブを選択します。
  2. 「物理アーキテクチャ」 > 「テクノロジ」 > 「Endeca Server」 > 「データ型」を開きます。
  3. Endeca Serverのデータ型をダブルクリックします。

    たとえば、Endeca Serverのブール型をOracleのNUMBERにマップするには、「mdex:boolean」をダブルクリックします。

  4. 右ペインで「変換先」を選択します。
  5. 行を下へスクロールしてデータベース・ソース名を特定します。

    たとえば、「Oracle」を選択します。


    データベース・ソースの選択
  6. その行の「データ型」列の値から目的のデータ型を選択します。これにより、ソースのデータ型が手順3で選択したEndeca Server型に変換されます。

    たとえば、「NUMBER」を選択します。

この例の手順では、Oracleのデータ型NUMBERをEndeca Server型mdex:booleanにマップしています。これが必要となるのは、Oracleではブール値を表すためにTrueとFalseではなく1と0が使用されるからです。time、dateTimeおよびgeocodeなどのEndeca serverのデータ型を別のソースのデータ型にマップすることもできます。