Selfuel Docs
  • Welcome to Selfuel Platform
    • Features
    • Capabilities
    • Target Audience
    • $150 Free Trial
  • Registration and Login
  • Platform UI
  • Stream Processing with Cortex
    • Cortex Quickstart Guide
    • Cortex Elements
      • Streams
      • Attributes
      • Mappings
        • 🚧Source Mapping Types
        • 🚧Sink Mapping Types
      • Node and Application Healthchecks
      • Nodes
        • Node Preview
        • Node Connectivites
        • Node Units
      • Expression Builder
        • 🚧Built-in Functions
      • Windows
        • Cron Window
        • Delay Window
        • Unique Event Window
        • First Event Window
        • Sliding Event Count Window
        • Tumbling Event Count Window
        • Session Window
        • Tumbling Event Sort Window
        • Sliding Time Window
        • Tumbling Time Window
        • Sliding Time and Event Count Window
      • Store and Cache
        • RDBMS
        • MongoDB
        • Redis
        • Elasticsearch
    • Applications
      • Applications Page
      • Creating Applications using Canvas
      • Connector Nodes Cluster
        • Source Nodes
          • CDC Source
          • Email Source
          • HTTP Source
          • HTTP Call Response Source
          • HTTP Service Source
          • Kafka Source
          • RabbitMQ Source
          • gRPC Source
          • JMS Source
          • Kafka Multi DC Source
          • JMS Source
          • AWS S3 Source
          • Google Pub-sub Source
          • AWS SQS Source
          • MQTT Source
          • Google Cloud Storage Source
          • HTTP SSE Source
          • WebSubHub Source
        • Sink Nodes
          • Email Sink
          • HTTP Sink
          • HTTP Service Response Sink
          • HTTP Call Sink
          • Kafka Sink
          • RabbitMQ Sink
          • gRPC Sink
          • JMS Sink
          • Kafka Multi DC Sink
          • AWS S3 Sink
          • Google Pub-sub Sink
          • AWS SQS Sink
          • MQTT Sink
          • Google Cloud Storage Sink
          • HTTP SSE Sink
          • WebSubHub Sink
      • Processing Nodes Cluster
        • Query
        • Join
        • Pattern
        • Sequence
        • Processor
        • 🚧On-demand Query
      • Buffer Nodes Cluster
        • Stream
        • Table
        • Window
        • Aggregation
        • Trigger
    • Run Applications
      • Run Applications Using Runners
      • Update Running Applications
      • Application Versioning
  • Data Integration with Nexus
    • Nexus Quickstart Guide
    • Nexus Elements
      • Concept
        • Config
        • Schema Feature
        • Speed Control
      • Connectors
        • Source
          • Source Connector Features
          • Source Common Options
          • AmazonDynamoDB
          • AmazonSqs
          • Cassandra
          • Clickhouse
          • CosFile
          • DB2
          • Doris
          • Easysearch
          • Elasticsearch
          • FakeSource
          • FtpFile
          • Github
          • Gitlab
          • GoogleSheets
          • Greenplum
          • Hbase
          • HdfsFile
          • Hive
          • HiveJdbc
          • Http
          • Apache Iceberg
          • InfluxDB
          • IoTDB
          • JDBC
          • Jira
          • Kingbase
          • Klaviyo
          • Kudu
          • Lemlist
          • Maxcompute
          • Milvus
          • MongoDB CDC
          • MongoDB
          • My Hours
          • MySQL CDC
          • MySQL
          • Neo4j
          • Notion
          • ObsFile
          • OceanBase
          • OneSignal
          • OpenMldb
          • Oracle CDC
          • Oracle
          • OssFile
          • OssJindoFile
          • Paimon
          • Persistiq
          • Phoenix
          • PostgreSQL CDC
          • PostgreSQL
          • Apache Pulsar
          • Rabbitmq
          • Redis
          • Redshift
          • RocketMQ
          • S3File
          • SftpFile
          • Sls
          • Snowflake
          • Socket
          • SQL Server CDC
          • SQL Server
          • StarRocks
          • TDengine
          • Vertica
          • Web3j
          • Kafka
        • Sink
          • Sink Connector Features
          • Sink Common Options
          • Activemq
          • AmazonDynamoDB
          • AmazonSqs
          • Assert
          • Cassandra
          • Clickhouse
          • ClickhouseFile
          • CosFile
          • DB2
          • DataHub
          • DingTalk
          • Doris
          • Druid
          • INFINI Easysearch
          • Elasticsearch
          • Email
          • Enterprise WeChat
          • Feishu
          • FtpFile
          • GoogleFirestore
          • Greenplum
          • Hbase
          • HdfsFile
          • Hive
          • Http
          • Hudi
          • Apache Iceberg
          • InfluxDB
          • IoTDB
          • JDBC
          • Kafka
          • Kingbase
          • Kudu
          • Maxcompute
          • Milvus
          • MongoDB
          • MySQL
          • Neo4j
          • ObsFile
          • OceanBase
          • Oracle
          • OssFile
          • OssJindoFile
          • Paimon
          • Phoenix
          • PostgreSql
          • Pulsar
          • Rabbitmq
          • Redis
          • Redshift
          • RocketMQ
          • S3Redshift
          • S3File
          • SelectDB Cloud
          • Sentry
          • SftpFile
          • Slack
          • Snowflake
          • Socket
          • SQL Server
          • StarRocks
          • TDengine
          • Tablestore
          • Vertica
        • Formats
          • Avro format
          • Canal Format
          • CDC Compatible Debezium-json
          • Debezium Format
          • Kafka source compatible kafka-connect-json
          • MaxWell Format
          • Ogg Format
        • Error Quick Reference Manual
      • Transform
        • Transform Common Options
        • Copy
        • FieldMapper
        • FilterRowKind
        • Filter
        • JsonPath
        • LLM
        • Replace
        • Split
        • SQL Functions
        • SQL
    • Integrations
      • Integrations Page
      • Creating Integrations Using Json
    • Run Integrations
      • Run Integrations Using Runners
      • Integration Versioning
  • Batch Processing/Storage with Maxim
    • Maxim Quickstart Guide
    • Maxim Elements
    • Queries
    • Run Queries
  • Orchestration with Routines
    • Routines Quickstart Guide
    • Routines Elements
    • Routines
    • Run Routines
  • Runners
    • Runners Page
    • Create a Runner to Run Applications
  • Security
    • Vaults
      • Vaults Page
      • Create Vaults
        • Runner-level Vaults
        • Application-level Vaults
      • Edit and Delete Vaults
      • 🚧Utilizing Vaults in Applications and Runners
    • Certificates
      • Certificates Page
      • 🚧Utilizing Certificates in Applications
      • 🟨Setting Up Security Settings
  • Monitoring Performance
    • Dashboard
    • Application Details
    • Runner Details
  • Logging
    • Log Types
  • Cost Management
    • SaaS
      • Pay-as-you-go
        • Hard Budget Cap
        • Soft Budget Cap
      • Subscriptions
    • On-prem
  • Organization Settings
    • General
    • Access Controls
      • User Roles and Privileges
    • Current Costs
    • Billing Addresses
    • Payment Accounts
    • Subscriptions
    • Pricing
    • Invoicing
  • User Settings
  • Troubleshooting
  • FAQs
Powered by GitBook
On this page
  • Step 1 - General
  • Name and Description
  • Attributes
  • Step 2 - Left Input Processing Logic
  • Select Left Join
  • Enable Filter (for Left Join)
  • Enable Window (for Left Join)
  • Step 3 - Right Input Processing Logic
  • Enable Filter (for Right Join)
  • Enable Window (for Right Join)
  • Step 4 - Join Type and Conditions
  • Enable Unidirectional Stream
  • Join Type
  • Join Condition
  • Step 5 - Preview
  1. Stream Processing with Cortex
  2. Applications
  3. Processing Nodes Cluster

Join

PreviousQueryNextPattern

Last updated 1 year ago

Join Nodes enable the merge of data by linking events from two Nodes, which can be either Source or Buffer Nodes. Events from different Nodes such as Stream, Window, Table, Aggregation and Source Nodes can be merged with a Join Condition. Also, the selection of the Join Type is a critical step that depends on the types of the input nodes, affecting the available join options.

The configuration also involves specifying a Join Condition, which is crucial for defining how records from the left and right nodes are combined. Omitting the Join Condition results in a Cross Join, where each event from one stream is matched with all events in the other, potentially increasing output volume significantly. Setting a precise Join Condition ensures that the data is merged according to specific requirements, optimizing the relevance and efficiency of the output.

Step 1 - General

Name and Description

When configuring a Join Node in Cortex involves several key actions.

  • Assign a unique name to the Node, distinct from other Nodes in your Application.

  • Optionally, add a Description for detail and clarity.

  • The Node Name and Description will help distinguish it in the Canvas via Node Preview.

Attributes

For the Join Node in Cortex, the Attributes are automatically derived as inputs from Sink or Buffer Nodes connected to its left side.

  • Attributes in the Query Node automatically originate from Sink or Buffer Nodes to its left.

  • Attributes Table displays a list of Attributes Names, Input Node Names, and Attribute Types for each input attribute.

Step 2 - Left Input Processing Logic

Select Left Join

You should select which Input Node should be selected as the Left Join.

Selecting the Left join automatically configures the Right Join in the Step 3.

  • If you want to reverse Left or Right Input Nodes you should get back to Step 2 to do so.

  • In some cases, the Left and Right Join selection may directly affect the output you receive.

Enable Filter (for Left Join)

To create an input filter using the Left Join Attributes, activate the toggle next to Enable Filter.

You can refer to Expression Builder to learn how to create a filter using the Expression Builder.

Enable Window (for Left Join)

To create a window to group Left Join Attributes, activate the toogle next to the Enable Window.

By selecting a Window Type from the dropdown, you can group incoming events with different time, quantity, order, or count constraints you require.

You can refer to Windows to learn how to effectively choose and create windows.

Step 3 - Right Input Processing Logic

Here, the Right Join is selected automatically as one of the two input nodes are selected as the Left Join in Step 2.

If you want to reverse Left or Right Input Nodes you should get back to Step 2 to do so.

  • In some cases, the Left and Right Join selection may directly affect the output you receive.

Enable Filter (for Right Join)

To create an input filter using the Right Join Attributes, activate the toggle next to Enable Filter.

You can refer to Expression Builder to learn how to create a filter using the Expression Builder.

Enable Window (for Right Join)

To create a window to group Right Join Attributes, activate the toogle next to the Enable Window.

By selecting a Window Type from the dropdown, you can group incoming events with different time, quantity, order, or count constraints you require.

You can refer to Windows to learn how to effectively choose and create windows.

Step 4 - Join Type and Conditions

At Step 4 of a Join Node , you are tasked with making key decisions about how the Input Nodes will be joined.

  • If one or more streams are connected as Input Nodes, you can choose a stream to be unidirectional.

  • Then you decide on the Join Type and define Join Conditions for Input Nodes.

Enable Unidirectional Stream

This feature is enabled if at least one Stream Node is connected to the Join Node.

Typically, events arriving on either connected stream can trigger the join operation, resulting in an output.

  • Default Join Behavior: Events from either stream usually can trigger the join operation, producing output.

  • Deciding on a unidirectional stream changes this behavior: Only the stream selected as unidirectional triggers the join operation.

  • The other stream, without the a unidirectional state, updates only its window state without triggering the join or producing output.

You can select only one Stream Node to be unidirectional. This is because as default behavior of the Join Node already permits both streams to trigger the join operation. Applying the unidirectional keyword to both would contradict this default functionality.

Join Type

In the next step of configuring a Join Node in Cortex, you'll select the preferred Join Type for your input nodes. Remember, the two input nodes to a Join Node can be either a Source or a Buffer Node. The type(s) of input nodes influences the available join types. You can refer to the provided table below.

The types of input nodes, either Source or Buffe Node, driectly affect available Join Types.

Right Join

Right Join

Right Join

Right Join

Stream/ Source

Table

Window

Aggregation

Left Join

Stream/ Source

  • Inner Join

  • Left Outer Join

  • Right Outer Join

  • Full Outer Join

  • Cross Join

  • Inner Join

  • Left Outer Join

  • Right Outer Join

  • Full Outer Join

  • Cross Join

  • Inner Join

  • Left Outer Join

  • Right Outer Join

  • Full Outer Join

  • Cross Join

  • Inner Join

  • Left Outer Join

  • Right Outer Join

  • Full Outer Join

  • Cross Join

Left Join

Table

  • Inner Join

  • Left Outer Join

  • Right Outer Join

  • Full Outer Join

  • Cross Join

Not Allowed

  • Inner Join

  • Left Outer Join

  • Right Outer Join

  • Full Outer Join

  • Cross Join

Not Allowed

Left Join

Window

  • Inner Join

  • Left Outer Join

  • Right Outer Join

  • Full Outer Join

  • Cross Join

  • Inner Join

  • Left Outer Join

  • Right Outer Join

  • Full Outer Join

  • Cross Join

  • Inner Join

  • Left Outer Join

  • Right Outer Join

  • Full Outer Join

  • Cross Join

Not Allowed

Left Join

Aggregation

Not Allowed

Not Allowed

Not Allowed

Not Allowed

Join Condition

You can omit to define a Join Condition. This results in a Cross Join behavior where the triggering event from one stream matches against all events in the other stream's window. This can lead to a significant increase in the volume of output data.

Specify the Join Condition to establish the rules for combining records from your Left and Right Join Nodes. This condition is pivotal in determining the behavior of the join operation, ensuring that records are merged in a manner consistent with your data requirements.

Step 5 - Preview

In Preview Step, you're provided with a concise summary of all the changes you've made to the Join Node. This step is pivotal for reviewing and ensuring that your configurations are as intended before completing node setup.

  • Viewing Configurations: Preview Step presents a consolidated view of your node setup.

  • Saving and Exiting: Use the Complete button to save your changes and exit the node and return back to Canvas.

  • Revisions: Use the Back button to return to any Step of modify node setup.

The Preview Step offers a user-friendly summary to manage and finalize node settings in Cortex.