89 lines
3.4 KiB
Markdown
89 lines
3.4 KiB
Markdown
# EMQX Schema Registry
|
|
|
|
EMQX Schema Registry for managing various of schemas for
|
|
decoding/encoding messages.
|
|
|
|
To use schema in rule engine, a schema name should be passed to the
|
|
SQL functions that decode/encode data, like:
|
|
|
|
```sql
|
|
SELECT
|
|
schema_decode('sensor_notify', payload) as payload
|
|
FROM
|
|
"message.publish"
|
|
WHERE
|
|
topic = 't/1'
|
|
```
|
|
|
|
## Using schema registry with rule engine
|
|
|
|
```
|
|
+---------------------------+
|
|
| |
|
|
Events/Msgs | | Events/Msgs
|
|
--------------------> EMQX |------------------>
|
|
| |
|
|
| |
|
|
+-------------|-------------+
|
|
|
|
|
HOOK |
|
|
|
|
|
+-------------v-------------+ +----------+
|
|
| | Data | |
|
|
| Rule Engine ------------- Backends |
|
|
| | | |
|
|
+------|-------------|------+ +----------+
|
|
|^ |^
|
|
Decode|| ||Encode
|
|
|| ||
|
|
+------v|------------v|-----+
|
|
| |
|
|
| Schema Registry |
|
|
| |
|
|
+---------------------------+
|
|
```
|
|
|
|
## Architecture
|
|
|
|
```
|
|
| |
|
|
Decode | [APIs] | Encode
|
|
| |
|
|
| | [Registry]
|
|
+------v--------------v------+
|
|
REGISTER SCHEMA | |
|
|
INSTANCE | | +--------+
|
|
-------------------> | | |
|
|
[Management APIs] | Schema Registry ------ Schema |
|
|
| | | |
|
|
| | +--------+
|
|
| |
|
|
+----------------------------+
|
|
/ | \
|
|
+---/---+ +---|----+ +---\---+
|
|
| | | | | |
|
|
[Decoders] | Avro | |ProtoBuf| |Others |
|
|
| | | | | |
|
|
+-------+ +--------+ +-------+
|
|
|
|
```
|
|
|
|
- Register schema instance: adds a new instance of a schema of a
|
|
certain type. For example, when the user may have several Avro or
|
|
Protobuf schemas that they wish to use with different data flows.
|
|
|
|
# Documentation
|
|
|
|
- Refer to [Introduction to Schema Registry](https://docs.emqx.com/en/enterprise/v5.1/data-integration/schema-registry.html) for how to use the EMQX dashboard for configuring schemas.
|
|
|
|
- Refer to [EMQX Rules](https://docs.emqx.com/en/enterprise/v5.0/data-integration/rules.html)
|
|
for the EMQX rules engine introduction.
|
|
|
|
# Contributing
|
|
|
|
Please see our [contributing.md](../../CONTRIBUTING.md).
|
|
|
|
# License
|
|
|
|
EMQ Business Source License 1.1, refer to [LICENSE](BSL.txt).
|