מיפויים של סוגים מאוחדים לסוגי נתונים במקור וביעד

סוגים מאוחדים הם סוגי הנתונים שמופיעים באירועי Avro או JSON. הם מייצגים באופן מאוחד סוג נתונים ספציפי ל-Datastream, בכמה מקורות ויעדים שהשירות תומך בהם.

הסוגים המאוחדים הם קבוצת העל של כל ייצוגי הסוגים בכל סוגי המקורות הנתמכים, שמייצגים את סוג המקור המקורי באופן כללי אבל ללא אובדן נתונים.

בטבלאות הבאות מפורטים:

  • הסוגים המאוחדים שמשויכים ל-Datastream
  • מיפויים בין סוגי נתונים של Oracle, ‏ MySQL, ‏ SQL Server, ‏ PostgreSQL, ‏ Salesforce ו-MongoDB לבין הסוגים המאוחדים של Datastream

במסמכי התיעוד של יעד BigQuery אפשר לקרוא מידע על המיפויים בין סוגי הנתונים של המקורות השונים לבין BigQuery.

סוגים מאוחדים של Datastream

מקלידים את השם מידע הגדרת Avro הגדרת JSON
BOOLEAN בוליאני בוליאני בוליאני
BYTES רצף של בייטים לא חתומים בייטים מחרוזת
DATE ימים מאז תקופת הבסיס סוג לוגי של תאריך מחרוזת [ISO-8601]
DATETIME התאריך (במספר הימים מאז ראשית זמן יוניקס) והשעה (במיליוניות השנייה מאז חצות)

סוג מותאם אישית

{
  "type": "record",
  "name": "datetime",
  "fields": [
    {"name": "date",
     "type": "int",
     "logicalType": "date"},
    {"name": "time",
     "type": "long",
     "logicalType": "time-micros"}
  ]
}
    
מחרוזת [ISO-8601]
DECIMAL (p,s) מספר עשרוני עם סימן ודיוק שרירותי סוג לוגי עשרוני מספר
DOUBLE מספרים בשיטת נקודה צפה (floating point) ב-64 ביט double מספר
FLOAT מספרים ממשיים (float) ב-32 ביט מספר ממשי (float) מספר
INTEGER מספר שלם (integer) ב-32 ביט int מספר
INTERVAL משך הזמן בין שני אירועים (בחודשים, בשעות ובמיקרו-שניות)

סוג מותאם אישית

{
  "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 ביט ארוך מספר
NUMBER סוג נתונים מספרי

סוג לוגי מותאם אישית

{
  "type": "string",
  "logicalType": "number"
}
מחרוזת
STRING אורך מחרוזת ללא הגבלה מחרוזת מחרוזת
TIME כמה מיקרו-שניות חלפו מאז חצות, ללא קשר לאזור הזמן. סוג לוגי של מיקרו-זמן מחרוזת [ISO-8601]
TIME INTERVAL כמה מיקרו-שניות חלפו בין שני אירועים

סוג לוגי מותאם אישית

{
  "type": "long",
  "logicalType": "time-interval-micros"
}
ארוך
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 כמה מיקרו-שניות חלפו מאז חצות עם היסט ספציפי מאזור הזמן

סוג מותאם אישית

{
  "type": "record",
  "name": "timeTz",
  "fields": [
    {"name": "time",
     "type": "long"
     "logicalType": "time-micros"},
    {"name": "offset",
     "type": "int",
     "logicalType": "time-millis"}
  ]
}
    
מחרוזת [ISO-8601]
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. ‫If p>18 or p=*, then NUMBER.

NUMBER(p,s>0)

‫If p=*, then DECIMAL(38,s), else 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
COMPOSITE UNSUPPORTED
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 TIME ZONE TIMESTAMP WITH TIME ZONE
TIME WITH TIME ZONE TIME WITH TIME ZONE
TSQUERY STRING
TSVECTOR STRING
TXID SNAPSHOT STRING
UUID STRING
XID STRING
XID8 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 TIME ZONE
DECIMAL DECIMAL (p, s)
FLOAT DOUBLE
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

מיפוי סוגי נתונים ב-Salesforce לסוגים מאוחדים ב-Datastream

יש שני סוגים של טיפוסי נתונים ש-Salesforce תומכת בהם:

מיפויים של סוגי נתונים פרימיטיביים

סוג הנתונים ב-Salesforce סוג מאוחד של Datastream
BOOLEAN BOOLEAN
BYTE BYTES
DATE אם היעד הוא BigQuery, אז DATE, אם Cloud Storage, אז TIMESTAMP
DATETIME אם היעד הוא BigQuery, אז DATETIME, אם Cloud Storage, אז TIMESTAMP
DOUBLE DOUBLE
INT INTEGER
STRING STRING
TIME TIME

מיפוי של סוגי נתונים בשדות

סוג הנתונים ב-Salesforce סוג מאוחד של Datastream
ADDRESS שדות המשנה של השדה המורכב הזה משוכפלים עם סוגי הנתונים המתאימים שלהם
ANYTYPE

(יכול להיות STRING,‏ DATE,‏ NUMBER או BOOLEAN)

STRING
COMBOBOX STRING
CURRENCY DOUBLE
DATACATEGORYGROUPREFERENCE STRING
EMAIL STRING
ENCRYPTEDSTRING STRING
GEOLOCATION שדות המשנה של השדה המורכב הזה משוכפלים עם סוגי הנתונים המתאימים שלהם
ID STRING
JUNCTIONIDLIST STRING
MASTERRECORD STRING
MULTIPICKLIST STRING
PERCENT DOUBLE
PHONE STRING
PICKLIST STRING
REFERENCE STRING
TEXTAREA STRING
URL STRING

מיפוי של סוגי נתונים ב-Spanner‏ (GoogleSQL) לסוגים מאוחדים של Datastream

סוג הנתונים ב-Spanner סוג נתונים מאוחד
ARRAY ARRAY
BOOL BOOLEAN
BYTES BYTES
DATE DATE
FLOAT32 FLOAT
FLOAT64 DOUBLE
INT64 LONG
JSON JSON
NUMERIC NUMBER
STRING STRING
TIMESTAMP TIMESTAMP WITH TIME ZONE
UUID STRING
PROTO UNSUPPORTED
ENUM UNSUPPORTED

מיפוי של סוגי נתונים ב-Spanner‏ (PostgreSQL) לסוגים מאוחדים ב-Datastream

סוג הנתונים ב-Spanner סוג נתונים מאוחד
ARRAY ARRAY
BIGINT LONG
BOOL BOOLEAN
BYTEA BYTES
CHARACTER VARYING STRING
DATE DATE
DECIMAL NUMBER
DOUBLE PRECISION DOUBLE
FLOAT8 DOUBLE
INT8 LONG
JSONB JSON
NUMERIC NUMBER
TEXT STRING
TIMESTAMP WITH TIME ZONE TIMESTAMP WITH TIME ZONE
TIMESTAMPTZ TIMESTAMP WITH TIME ZONE
VARCHAR STRING
UUID STRING

סוגי נתונים ב-MongoDB

כל מסמך MongoDB נכתב כסוג מאוחד JSON ב-Datastream. דוגמאות לאופן הכתיבה של סוגי נתונים ב-BigQuery מופיעות במאמר בנושא הגדרת יעד ב-BigQuery.

המאמרים הבאים