TinkerpopClientService

Description:

This service interacts with a tinkerpop-compliant graph service, providing both script submission and bytecode submission capabilities. Script submission is the default, with the script command being sent to the gremlin server as text. This should only be used for simple interactions with a tinkerpop-compliant server such as counts or other operations that do not require the injection of custom classed. Bytecode submission allows much more flexibility. When providing a jar, custom serializers can be used and pre-compiled graph logic can be utilized by groovy scriptsprovided by processors such as the ExecuteGraphQueryRecord.

Additional Details...

Tags:

graph, gremlin

Properties:

In the list below, the names of required properties appear in bold. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the NiFi Expression Language.

Display NameAPI NameDefault ValueAllowable ValuesDescription
Script Submission Typesubmission-typeScript Submission
  • Script Submission Script is sent to the gremlin server as a submission. Similar to a rest request.
  • ByteCode Submission Groovy scripts are compiled within NiFi, with the GraphTraversalSource injected as a variable 'g'. Effectively allowing your logic to directly manipulates the graph without string serialization overheard.
A selection that toggles for between script submission or as bytecode submission
Settings Specificationconnection-settingsService-Defined Settings
  • Service-Defined Settings Connection to the gremlin server will be specified via values on this controller (simpler). Only recommended for testing and development with a simple grpah instance.
  • Yaml Settings Connection to the gremlin server will be specified via a YAML file (very flexible)
Selecting "Service-Defined Settings" connects using the setting on this service. Selecting "Yaml Settings" uses the specified YAML file for connection settings.
Remote Objects Fileremote-objects-fileThe remote-objects file YAML used for connecting to the gremlin server.
Supports Expression Language: true (will be evaluated using Environment variables only)

This Property is only considered if the [Settings Specification] Property has a value of "Yaml Settings".
Extension JARsextensionA comma-separated list of Java JAR files to be loaded. This should contain any Serializers or other classes specified in the YAML file. Additionally, any custom classes required for the groovy script to work in the bytecode submission setting should also be contained in these JAR files.

This property expects a comma-separated list of resources. Each of the resources may be of any of the following types: URL, directory, file.

Supports Expression Language: true (will be evaluated using Environment variables only)

This Property is only considered if the [Settings Specification] Property has a value of "Yaml Settings".
Extension Classesextension-classesA comma-separated list of fully qualified Java class names that correspond to classes to implement. This is useful for services such as JanusGraph that need specific serialization classes. This configuration property has no effect unless a value for the Extension JAR field is also provided.
Supports Expression Language: true (will be evaluated using Environment variables only)

This Property is only considered if all of the following conditions are met:
  • The [Settings Specification] Property has a value of "Yaml Settings".
  • The [Extension JARs] Property has a value specified.
Contact Pointstinkerpop-contact-pointsA comma-separated list of hostnames or IP addresses where an Gremlin-enabled server can be found.
Supports Expression Language: true (will be evaluated using Environment variables only)

This Property is only considered if the [Settings Specification] Property has a value of "Service-Defined Settings".
Porttinkerpop-port8182The port where Gremlin Server is running on each host listed as a contact point.
Supports Expression Language: true (will be evaluated using Environment variables only)

This Property is only considered if the [Settings Specification] Property has a value of "Service-Defined Settings".
Pathtinkerpop-path/gremlinThe URL path where Gremlin Server is running on each host listed as a contact point.
Supports Expression Language: true (will be evaluated using Environment variables only)

This Property is only considered if the [Settings Specification] Property has a value of "Service-Defined Settings".
Traversal Source Namegremlin-traversal-source-nameAn optional property that lets you set the name of the remote traversal instance. This can be really important when working with databases like JanusGraph that support multiple backend traversal configurations simultaneously.
Supports Expression Language: true (will be evaluated using Environment variables only)
Usernameuser-nameThe username used to authenticate with the gremlin server. Note: when using a remote.yaml file, this username value (if set) will overload any username set in the YAML file.
Supports Expression Language: true (will be evaluated using Environment variables only)
PasswordpasswordThe password used to authenticate with the gremlin server. Note: when using a remote.yaml file, this password setting (if set) will override any password set in the YAML file
Sensitive Property: true
SSL Context Servicessl-context-serviceController Service API:
SSLContextService
Implementations: StandardRestrictedSSLContextService
StandardSSLContextService
The SSL Context Service used to provide client certificate information for TLS/SSL connections.

State management:

This component does not store state.

Restricted:

This component is not restricted.

System Resource Considerations:

None specified.