Celigo sync uses metadata from the source application, destination application requirements, and the values returned during sync configuration to determine the data type for each destination field.
When a source application provides reliable metadata, Celigo sync analyzes it to define the field’s data type. When source metadata is incomplete, unavailable, or too broad for the destination schema, Celigo sync applies built-in schema inference to assign the closest supported Celigo data type. The inferred data type is then mapped to a compatible data type in the destination data warehouse.
Celigo sync determines a field’s data type in the following general priority:
-
Source-provided metadata: If the source application exposes field metadata in objects, Celigo sync uses it to identify the field’s expected structure. For example, a source field identified as a date, number, Boolean, object, or array can be mapped directly to the corresponding Celigo data type.
-
Configured export or object details: If you selected a source object, saved search, or Celigo export, the sync uses the available field definitions from that selection. These definitions help Celigo determine how the field should be represented in the destination schema.
-
Values returned from the source: Intelligent inference is commonly needed for HTTP-based exports, universal applications, and other sources where strict field metadata might not be available.
-
At design time, Celigo sync evaluates the values returned by the source in a preview request.
-
During the sync run, it automatically adjusts the schema based on the live data extracted.
-
-
Default handling for ambiguous fields: If Celigo sync cannot confidently infer a more specific type, the field is treated as a general string-compatible value so that the data can still be loaded.
Important
A field’s inferred data type depends on the source metadata and the values available to the sync. If a later sync returns values that no longer fit the original type, Celigo sync treats the change as schema drift and applies the schema drift policy configured for the sync, object, export, or field.
Empty values, blank strings, and null values do not always provide enough information to identify a specific data type.
If a field contains only empty or null values when Celigo sync evaluates the source schema, Celigo sync may assign a default type so that the field can be added to the destination schema. When later sync runs return populated values, Celigo sync can detect the difference and apply the most specific schema drift policy.
Some source applications allow the same field to contain different kinds of values across records. For example, a field might contain a number in one record and text in another.
When Celigo sync detects mixed values, it selects a destination-compatible type that can preserve the data without causing load errors. In many cases, a string-compatible type is the safest option because it can store numeric, Boolean, and text values without changing the field again.
|
Data Type |
Short Description |
Example |
|---|---|---|
|
ARRAY |
An ordered collection of values stored as a single field. Elements are typically of the same or compatible types. |
|
|
BINARY |
Raw byte data used for storing non-text content such as files, images, or encoded values. |
|
|
BOOLEAN |
Represents a logical value with two possible states: true or false. |
|
|
DATE |
Stores a calendar date without any time-of-day information. |
|
|
DATETIMELTZ |
Date and time value interpreted using the session’s local time zone while stored in a normalized format. |
|
|
DATETIMENTZ |
Date and time value stored without any associated time zone information. |
|
|
DATETIMETZ |
Date and time value that includes an explicit time zone or UTC offset. |
|
|
DECIMAL |
Fixed-precision numeric type designed for exact arithmetic, often used for financial values. |
|
|
DEFAULT |
A generic or inferred data type used when a more specific type is not explicitly assigned. |
|
|
DOUBLE |
Floating-point number with double precision, suitable for a wide range of scientific or statistical calculations. |
|
|
NUMBER |
General-purpose numeric type that can represent whole numbers and fractional values. |
|
|
INTEGER |
Numeric type for whole numbers without decimal places. |
|
|
LONG |
Integer type optimized for storing larger whole-number values than a standard integer. |
|
|
OBJECT |
Structured data type containing named attributes or key-value pairs. |
|
|
SHORT |
Integer type intended for smaller whole-number ranges, typically using less storage than an integer. |
|
|
STRING |
Sequence of characters used to store text values. |
|
|
TIME |
Stores a time of day without an associated date or time zone. |
|
|
VARIANT |
Flexible type capable of holding values of different underlying data types, including semi-structured data. |
|