cypher
This component is experimental and therefore subject to change or removal outside of major version releases.
Executes a Cypher Query
Introduced in version 1.4.0.
- Common
- Advanced
# Common config fields, showing default values
output:
label: ""
cypher:
database: neo4j # No default (required)
uri: bolt://localhost:7687 # No default (required)
no_auth: false
basic_auth:
user: ""
password: ""
realm: ""
query: 'CREATE (p:Person {name: $name}) RETURN p' # No default (required)
values: {}
max_in_flight: 64
batching:
count: 0
byte_size: 0
period: ""
jitter: 0
check: ""
# All config fields, showing default values
output:
label: ""
cypher:
database: neo4j # No default (required)
uri: bolt://localhost:7687 # No default (required)
no_auth: false
basic_auth:
user: ""
password: ""
realm: ""
query: 'CREATE (p:Person {name: $name}) RETURN p' # No default (required)
values: {}
max_in_flight: 64
batching:
count: 0
byte_size: 0
period: ""
jitter: 0
check: ""
processors: [] # No default (optional)
Executes a Cypher Query
The query
field is expected to be a valid cypher query with 0 or more parameters with the $
syntax:
query: CREATE (p:Person {name: $name, age: $age}) RETURN p
The values
field is expected to be a map where the keys are equal to the parameters in the query,
and the values are strings (bloblang interpolations are allowed):
values:
name: ${! json("name") }
age: ${! json("age") }
Examples
- Create Node
Here we execute a cypher query that takes the value of $name from the interpolated field in the values map:
output:
cypher:
database: neo4j
uri: bolt://localhost:7687
basic_auth:
user: neo4j
password: password
query: |
CREATE (p:Person {name: $name}) RETURN p
values:
name: ${! json("name") }
batching:
count: 0
Fields
database
The name of the database to connect to.
Type: string
# Examples
database: neo4j
uri
The URL of the database engine.
Type: string
# Examples
uri: bolt://localhost:7687
no_auth
Set to true to connect without authentication.
Type: bool
Default: false
basic_auth
Basic Authentication fields
Type: object
basic_auth.user
The username for basic auth.
Type: string
Default: ""
basic_auth.password
The password for basic auth.
This field contains sensitive information that usually shouldn't be added to a config directly, read our secrets page for more info.
Type: string
Default: ""
basic_auth.realm
The realm for basic auth.
Type: string
Default: ""
query
The cypher query to execute.
Type: string
# Examples
query: 'CREATE (p:Person {name: $name}) RETURN p'
values
A map of strings -> bloblang interpolations that form the values of the references in the query i.e. $name. This field supports interpolation functions.
Type: object
Default: {}
# Examples
values:
name: ${! json("name") }
max_in_flight
The maximum number of queries to run in parallel.
Type: int
Default: 64
batching
Allows you to configure a batching policy.
Type: object
# Examples
batching:
byte_size: 5000
count: 0
period: 1s
batching:
count: 10
period: 1s
batching:
check: this.contains("END BATCH")
count: 0
period: 1m
batching:
count: 10
jitter: 0.1
period: 10s
batching.count
A number of messages at which the batch should be flushed. If 0
disables count based batching.
Type: int
Default: 0
batching.byte_size
An amount of bytes at which the batch should be flushed. If 0
disables size based batching.
Type: int
Default: 0
batching.period
A period in which an incomplete batch should be flushed regardless of its size.
Type: string
Default: ""
# Examples
period: 1s
period: 1m
period: 500ms
batching.jitter
A non-negative factor that adds random delay to batch flush intervals, where delay is determined uniformly at random between 0
and jitter * period
. For example, with period: 100ms
and jitter: 0.1
, each flush will be delayed by a random duration between 0-10ms
.
Type: float
Default: 0
# Examples
jitter: 0.01
jitter: 0.1
jitter: 1
batching.check
A Bloblang query that should return a boolean value indicating whether a message should end a batch.
Type: string
Default: ""
# Examples
check: this.type == "end_of_transaction"
batching.processors
A list of processors to apply to a batch as it is flushed. This allows you to aggregate and archive the batch however you see fit. Please note that all resulting messages are flushed as a single batch, therefore splitting the batch into smaller batches using these processors is a no-op.
Type: array
# Examples
processors:
- archive:
format: concatenate
processors:
- archive:
format: lines
processors:
- archive:
format: json_array