LF Edge eKuiper Documentation

repository·master·Indexed 23 days ago

https://github.com/lf-edge/ekuiper

A lightweight IoT data analytics and stream processing engine optimized for resource-constrained edge devices, featuring SQL and graph-based rule engines. Documentation covers installation via Helm and Docker, configuration using environment variables, JWT authentication setup, and integration with TensorFlow Lite and ONNX for edge AI functions.

Tokens
278.4K
Snippets
810
Records
1.4K
Agent score
82%

What's inside eKuiper

  1. Overview of LF Edge eKuiper

    master

    LF Edge eKuiper is a lightweight IoT data analytics and stream processing engine designed for resource-constrained edge devices. It provides a streaming software framework similar to Apache Flink, enabling users to create IoT edge analytics applications using either SQL-based or graph-based (similar to Node-RED) rules.

    Key characteristics:

    • Lightweight: Core server package is ~4.5MB with a ~10MB memory footprint.
    • Cross-platform: Supports X86 (AMD 32/64), ARM (32/64), and PPC across Linux distributions, OpenWrt, MacOS, and Docker.
    • Extensible: Supports custom Source, Sink, and UDF functions (User Defined Functions) via Golang or Python.
    • Management: Manage plugins, streams, and rules via CLI, REST API, or Kubernetes ConfigMaps. A web-based management dashboard is also available.
  2. Overview of Edge-Cloud Collaboration with eKuiper

    master

    eKuiper can be used as the central stream processing engine in an edge-cloud collaboration architecture for IIoT, IoV, and Smart City applications. In this model, eKuiper is deployed at the edge to perform stream processing, rule engine execution, and message routing.

    Data Flow Pattern:

    1. Ingestion: eKuiper collects data from edge sources such as Neuron (IIoT connectivity server), NanoMQ (ultra-lightweight MQTT broker), or general HTTP services.
    2. Processing: eKuiper performs real-time data processing and analysis.
    3. Egress/Storage: eKuiper publishes processed results to a cloud-based MQTT broker like EMQX or saves data to local storage.
  3. Overview of eKuiper SQL-like query language

    master

    eKuiper uses a SQL-like query language to perform transformations and computations over streams of events. This allows you to process real-time IoT data using familiar SQL syntax. The language supports several core components:

    • Stream specifications: Defining the source of the data.
    • Query language elements: The basic building blocks of your queries.
    • Windows: Performing computations over specific time or count intervals.
    • Built-in functions: Using pre-defined operations for data manipulation.
    • Extensions: Extending functionality via plugins or external service calls.
  4. Overview of eKuiper SQL query language

    master
    eKuiper provides a SQL-like query language designed for performing transformations and computations on event streams. The language allows users to define how data flows through the system by applying filters, aggregations, and transformations using syntax similar to standard SQL.
  5. Overview of the eKuiper CLI

    master

    The eKuiper CLI (Command Line Interface) is a tool used to manage streams and rules within the eKuiper ecosystem. It acts as a client to the eKuiper server. While the eKuiper server is responsible for the engine execution (processing stream/rule definitions, managing rule states, and handling I/O), the CLI provides the interface for administrators and developers to interact with these components.

    Key management areas include:

    • Streams: Managing the data sources and flows.
    • Rules: Managing the logic and queries applied to streams.
  6. Overview of eKuiper built-in functions

    master

    eKuiper provides a wide range of built-in SQL functions to perform computations on streaming data. These functions are categorized by their purpose, allowing you to manipulate various data types and structures within your rules.

    Available categories of built-in functions include:

    • Aggregate Functions: For summarizing data (e.g., sum, avg).
    • Mathematical Functions: For arithmetic and complex math.
    • String Functions: For manipulating text data.
    • Array Functions: For processing array/list types.
    • Object Functions: For processing object/map types.
    • Hashing Functions: For generating hashes.
    • Transform Functions: For data type or format conversions.
    • JSON Functions: For querying and manipulating JSON structures.
    • Datetime Functions: For handling timestamps and date/time logic.
    • Analytic Functions: For advanced data analysis.
    • Multi-row/Multi-column Functions: For operations involving multiple rows or columns.
    • Window Functions: For computations over specific time or count windows.
  7. What is LF Edge eKuiper?

    master

    LF Edge eKuiper is an open-source, lightweight IoT edge data analytics and stream processing software designed to run on resource-constrained hardware. It provides a real-time stream computing framework similar to Apache Flink, allowing users to create edge analytics applications in minutes using SQL-based or Graph-based rules.

    Key Capabilities:

    • Data Processing: Extraction, transformation, filtering, sorting, grouping, aggregation, and joins.
    • Functions: Over 60 built-in functions covering math, string, aggregation, and hash operations.
    • Windowing: Supports 4 types of time windows and count windows.
    • Extensibility: Users can extend the system via Golang or Python in three areas: Sources (data ingestion), Sinks (data output), and SQL Functions (custom logic like AI/ML calls).
  8. Overview of Go Native Plugin Extensions

    master

    eKuiper provides a Go native plugin system that allows users to extend the engine's capabilities by implementing specific interfaces. There are three primary types of extensions:

    1. Source Extensions: Used to extend data stream sources (e.g., integrating data from custom message servers). eKuiper includes a built-in MQTT source.
    2. Sink/Action Extensions: Used to extend data destinations (e.g., pushing data to custom databases, web interfaces, or file systems). eKuiper includes built-in MQTT and Log file sinks.
    3. Function Extensions: Used to add custom SQL functions to the engine's SQL processing capabilities.
  9. Explore eKuiper use cases

    master

    eKuiper is a lightweight stream processing engine designed for edge computing. It is applicable in several key domains:

    • Industrial IoT (IIoT): Deploy eKuiper at the edge near data sources to perform real-time analysis and intelligent decision-making for smart manufacturing.
    • Internet of Vehicles (IoV): Used in vehicle-to-cloud solutions (often combined with the QUIC protocol) to handle the explosive growth of data collection requirements in connected vehicles, ensuring easy deployment and portability.
    • Public Data Analysis: Used to extract valuable information from large-scale public data sharing platforms.
  10. Explore eKuiper integration ecosystems

    master

    eKuiper supports seamless integration with various IoT and edge computing platforms to extend its data processing capabilities. Key integration paths include:

    • Edge-Cloud Collaboration: Building solutions for IIoT, IoV, and Smart Cities using eKuiper as the edge component.
    • EdgeX Foundry: Using eKuiper as the real-time stream processing module within the EdgeX Foundry ecosystem.
    • Neuron: Integrating with Neuron to perform computations on collected data without additional configuration, reducing resource requirements.
    • KubeEdge: Deploying eKuiper instances in containers via KubeEdge to enable low-latency edge computing by subscribing to device data via MQTT.
    • OpenYurt: Deploying eKuiper in OpenYurt clusters and utilizing yurt tunnels for cloud-to-edge management.