統合型の転送元と転送先のデータ型へのマッピング

概要

統合型とは、Avro イベントまたは JSON イベントに表示されるデータ型です。これは、ソースの Oracle データベース、MySQL データベース、PostgreSQL データベース、BigQuery や Cloud Storage の宛先など、複数のデータソースと宛先にわたるデータ型の Datastream 固有の統合表現です。

統合型は、サポートされているすべてのソースタイプのすべての型表現のスーパーセットであり、元のソースタイプを汎用的、可逆的に表します。

次の表に以下の内容の一覧を示します。

  • Datastream に関連付けられた統合型
  • Oracle データベース、MySQL データベース、PostgreSQL データベースのデータ型と Datastream の統合型のマッピング

さまざまなソースと BigQuery のデータ型のマッピングについては、BigQuery の宛先に関するドキュメントをご覧ください。

Datastream の統合型

型名 情報 Avro の定義 JSON 定義
BOOLEAN ブール値 ブール値 ブール値
BYTES 未署名バイトのシーケンス バイト 文字列
DATE エポックからの日数 日付論理型 文字列 [ISO-8601]
DATETIME 日付(エポックからの日数)と時間(午前 0 時からのマイクロ秒単位)

カスタム型

{
  "type": "record",
  "name": "datetime",
  "fields": [
    {"name": "date",
     "type": "int",
     "logicalType": "date"},
    {"name": "time",
     "type": "long",
     "logicalType": "time-micros"}
  ]
}
    
文字列 [ISO-8601]
DECIMAL (p,s) 任意精度符号付き 10 進数 decimal 論理型 数値
DOUBLE 64 ビット浮動小数点数 double 数値
FLOAT 32 ビット浮動小数点数 float 数値
INTEGER 32 ビット整数。 int 数値
INTERVAL 2 つのイベント間の期間(月、時間、マイクロ秒)

カスタム型

{
  "type": "record",
  "name": "interval",
  "fields": [
    {"name": "months",
     "type": "int"}
    {"name": "hours",
     "type": "int"},
    {"name": "micros",
     "type": "long"}
  ]
}
    
文字列 [ISO-8601]
JSON JSON オブジェクト

カスタムの論理型

{
  "type": "string",
  "logicalType": "json"
}
ネストされた JSON
LONG 64 ビット整数。 long 数値
NUMBER 数値データ型

カスタムの論理型

{
  "type": "string",
  "logicalType": "number"
}
文字列
STRING 文字列の長さに制限がない 文字列 文字列
TIME タイムゾーンに関係なく、午前 0 時からの経過時間(マイクロ秒)。 time-micros の論理型 文字列 [ISO-8601]
TIME_INTERVAL 2 つのイベント間の経過時間(マイクロ秒)

カスタムの論理型

{
  "type": "long",
  "logicalType": "time-interval-micros"
}
long
TIMESTAMP タイムゾーンに関係なく、エポックからの経過時間(マイクロ秒単位) タイムスタンプ論理型 文字列 [ISO-8601]
TIMESTAMP WITH TIME ZONE 特定のタイムゾーン オフセット(ミリ秒単位)を持つエポックからの経過時間(マイクロ秒)

カスタム型

{
  "type": "record",
  "name": "timestampTz",
  "fields": [
    {"name": "timestamp",
     "type": "long"
     "logicalType": "timestamp-micros"},
    {"name": "offset",
     "type": "int"
     "logicalType": "time-millis"}
  ]
}
    
文字列 [ISO-8601]
TIME WITH TIME ZONE 特定のタイムゾーン オフセットで午前 0 時からの経過時間(マイクロ秒)

カスタム型

{
  "type": "record",
  "name": "timeTz",
  "fields": [
    {"name": "time",
     "type": "long"
     "logicalType": "time-micros"},
    {"name": "offset",
     "type": "int",
     "logicalType": "time-millis"}
  ]
}
    
文字列 [ISO-8601]
UNION 可変データ型 Union 配列
UNSUPPORTED サポートされていないデータ型

カスタムの論理型

{
  "type": "null",
  "logicalType": "unsupported"
}
null
VARCHAR 最大 n 文字の文字列

カスタムの論理型

{
  "type": "string",
  "logicalType": "varchar"
  "length": N
}
文字列

Oracle のデータ型を Datastream の統合型にマッピングする

Oracle のデータ型 Datastream の統合タイプ
ANYDATA UNSUPPORTED
BFILE STRING
BINARY DOUBLE DOUBLE
BINARY FLOAT FLOAT
BLOB BYTES
CHAR VARCHAR
CLOB STRING
DATE DATETIME
DOUBLE PRECISION DOUBLE
FLOAT(p) DOUBLE
INTERVAL DAY TO SECOND UNSUPPORTED
INTERVAL YEAR TO MONTH UNSUPPORTED
LONG/LONG RAW UNSUPPORTED
NCHAR STRING
NCLOB STRING
NUMBER NUMBER
NUMBER(p,s<=0)

p<=18 の場合、LONG です。p>18 または p=* の場合、NUMBER です。

NUMBER(p,s>0)

p=* の場合は DECIMAL(38,s)、それ以外の場合は DECIMAL(p,s)

NVARCHAR2 STRING
RAW STRING
ROWID STRING
SDO_GEOMETRY UNSUPPORTED
SMALLINT INTEGER
TIMESTAMP TIMESTAMP
TIMESTAMP WITH TIME ZONE TIMESTAMP WITH TIME ZONE
UDT(ユーザー定義型) UNSUPPORTED
UROWID UNSUPPORTED
VARCHAR VARCHAR
VARCHAR2 VARCHAR
XMLTYPE UNSUPPORTED

MySQL のデータ型を Datastream の統合型にマッピングする

MySQL のデータ型 Datastream の統合タイプ
BIGINT(size) SIGNED LONG
BIGINT(size) UNSIGNED 宛先が BigQuery の場合は DECIMAL、Cloud Storage の場合は NUMBER
BINARY(size) STRING (hex encoded)
BIT(size) LONG
BLOB(size) STRING (hex encoded)
BOOL INTEGER
CHAR(size) STRING
DATE 宛先が BigQuery の場合は DATE、Cloud Storage の場合は TIMESTAMP
DATETIME(fsp) 宛先が BigQuery の場合は DATETIME、Cloud Storage の場合は TIMESTAMP
DECIMAL(size, d) DECIMAL(size, d)
DOUBLE(size, d) DOUBLE
ENUM(val1, val2, val3, ...) STRING
FLOAT(p) FLOAT
FLOAT(size, d) FLOAT
GEOMETRY UNSUPPORTED
INTEGER(size) SIGNED INTEGER
INTEGER(size) UNSIGNED LONG
JSON 宛先が BigQuery の場合は JSON、Cloud Storage の場合は STRING
LONGBLOB STRING (hex encoded)
LONGTEXT STRING
MEDIUMBLOB STRING (hex encoded)
MEDIUMINT(size) INTEGER
MEDIUMTEXT STRING
SET(val1, val2, val3, ...) STRING
SMALLINT(size) INTEGER
TEXT(size) STRING
TIME(fsp) 宛先が BigQuery の場合は INTERVAL、Cloud Storage の場合は TIME_INTERVAL
TIMESTAMP(fsp) TIMESTAMP
TINYBLOB STRING (hex encoded)
TINYINT(size) INTEGER
TINYTEXT STRING
VARBINARY(size) STRING (hex encoded)
VARCHAR STRING
YEAR INTEGER

PostgreSQL のデータ型を Datastream の統合型にマッピングする

PostgreSQL のデータ型 Datastream の統合タイプ
ARRAY JSON
BIGINT LONG
BIT BYTES
BIT_VARYING BYTES
BOOLEAN BOOLEAN
BOX UNSUPPORTED
BYTEA BYTES
CHARACTER
  • 長さの上限がある場合は、VARCHAR にマッピングします。
  • それ以外の場合は、STRING にマッピングします。
CHARACTER_VARYING
  • 長さの上限がある場合は、VARCHAR にマッピングします。
  • それ以外の場合は、STRING にマッピングします。
CIDR STRING
CIRCLE UNSUPPORTED
CITEXT STRING
DATE DATE
DOUBLE_PRECISION DOUBLE
ENUM STRING
INET STRING
INTEGER INTEGER
INTERVAL INTERVAL
JSON JSON
JSONB JSON
LINE UNSUPPORTED
LSEG UNSUPPORTED
MACADDR STRING
MONEY DOUBLE
NUMERIC
  • precision = -1 および scale = -1 の場合、NUMBER にマッピングされます。
  • それ以外の場合は、DECIMAL にマッピングします。
OID LONG
PATH UNSUPPORTED
POINT UNSUPPORTED
POLYGON UNSUPPORTED
REAL FLOAT
SMALLINT INTEGER
SMALLSERIAL INTEGER
SERIAL INTEGER
TEXT STRING
TIME TIME
TIMESTAMP TIMESTAMP
TIMESTAMP_WITH_TIMEZONE TIMESTAMP_WITH_TIMEZONE
TIME_WITH_TIMEZONE TIME_WITH_TIMEZONE
TSQUERY STRING
TSVECTOR STRING
TXID_SNAPSHOT STRING
UUID STRING
XML STRING

SQL Server のデータ型を Datastream の統合型にマッピングする

SQL Server のデータ型 Datastream の統合タイプ
BIGINT LONG
BINARY BYTES
BIT BOOLEAN
CHAR STRING
DATE DATE
DATETIME2 DATETIME
DATETIME DATETIME
DATETIMEOFFSET TIMESTAMP WITH TIMEZONE
DECIMAL DECIMAL (p, s)
FLOAT DOUBLE
HIERARCHYID STRING
INT INTEGER
IMAGE BYTES
MONEY DECIMAL
NCHAR STRING
NVARCHAR STRING
NVARCHAR(MAX) STRING
NTEXT STRING
NUMERIC DECIMAL (p, s)
REAL FLOAT
SMALLDATETIME DATETIME
SMALLINT INTEGER
SMALLMONEY DECIMAL
TEXT STRING
TINYINT INTEGER
TIME TIME
TIMESTAMP/ROWVERSION BYTES
UNIQUEIDENTIFIER STRING
VARCHAR STRING
VARCHAR(MAX) STRING
VARBINARY BYTES
VARBINARY(MAX) BYTES
XML STRING

次のステップ