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
BigQuery types to Neo4j
BigQuery value conversion is driven by the BigQuery query result schema.
Property mapping types specified with target_property_type do not currently coerce BigQuery values before they are written to Neo4j. To change a BigQuery value type, cast or transform it in the source query.
|
| BigQuery type | Beam type | Neo4j parameter value | Notes |
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Beam reads the value as |
|
|
|
|
|
|
|
BigQuery rows expose bytes as Base64 text and Beam decodes them before the Neo4j write. |
|
Beam SQL |
|
|
|
Beam SQL |
|
|
|
Beam SQL |
|
|
|
|
|
The conversion uses epoch milliseconds, so sub-millisecond precision is not preserved. |
|
Beam |
|
Beam’s default schema conversion maps picosecond timestamps to nanosecond precision. If Beam maps the value as |
|
|
|
The template does not convert WKT text to Neo4j |
|
|
|
The JSON payload is written as text unless custom Cypher parses it. |
|
|
|
Nested fields are recursively converted. This is useful only for custom Cypher query targets; node and relationship targets still only accept values Neo4j can store as properties. |
|
|
|
Element values are recursively converted. Repeated structs become lists of maps. |
|
Not supported |
Not written |
Beam schema conversion rejects these types in the current template path. |
When a Beam MAP value reaches the writer, only string keys are supported. Map values are recursively converted, and non-string keys fail to write.
Null values
BigQuery NULL values are passed through as Cypher null values.
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.