Data type conversions
Data conversion in the template is two-fold:
-
the source data is converted to a corresponding Apache Beam data type
-
the Beam data is then converted to Neo4j data types
Text sources to Neo4j
Text sources include external CSV files and inline text data. Source rows start as nullable Beam STRING fields, and target mappings decide how each value is cast.
If a mapping omits target_property_type, the field is treated as string.
|
target_property_type |
Target Beam type | Neo4j parameter value | Notes |
|---|---|---|---|
omitted, |
|
Trimmed |
|
|
|
|
|
|
|
|
Text is parsed with |
|
|
|
Text is parsed with |
|
|
|
Valid Base64 text is decoded. If Base64 decoding fails, the raw UTF-8 bytes of the value are used. |
|
Beam |
|
Accepts ISO dates such as |
|
Beam |
|
Offset input such as |
|
Beam |
|
Offset input such as |
|
Beam |
|
Use ISO date-time text such as |
|
|
|
Region-zone input such as |
|
Beam |
Not supported end to end |
The text cast parses ISO-8601 duration text such as |
|
|
|
The template does not construct Neo4j |
|
|
|
Array, iterable, map, and row target Beam types are not supported. |
Null values
For text sources, missing values, invalid values, and unsupported text conversions are converted to Cypher null values, with a warning in the job logs.
For node and relationship targets, assigning Cypher null to a non-key property means Neo4j does not store that property. If the property already exists on a matched entity, it is removed. Key property values must not be null.
For custom Cypher query targets, null values are passed as query parameters; their effect depends on the Cypher query.