You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+62-4
Original file line number
Diff line number
Diff line change
@@ -111,21 +111,79 @@ To push a Flink job directly to the Flink deployment created above, `kubectl app
111
111
112
112
## The SQL CLI
113
113
114
-
The `./hoptimator` script launches the [sqlline](https://github.com/julianhyde/sqlline) SQL CLI pre-configured to connect to `jdbc:hoptimator://`. The CLI includes some additional commands. See `!intro`.
114
+
The `./hoptimator` script launches the [sqlline](https://github.com/julianhyde/sqlline) SQL CLI pre-configured to connect to `jdbc:hoptimator://`.
115
+
The CLI includes some additional commands. See `!intro`.
115
116
116
117
## The JDBC Driver
117
118
118
119
To use Hoptimator from Java code, or from anything that supports JDBC, use the `jdbc:hoptimator://` JDBC driver.
119
120
120
121
## The Operator
121
122
122
-
`hoptimator-operator` turns materialized views into real data pipelines.
123
+
`hoptimator-operator` turns materialized views into real data pipelines. The name operator comes from the Kubernetes Operator pattern.
124
+
`PipelineOperatorApp` is intended to be an entry point for a running application that can listen to and reconcile the resources created in Kubernetes by the K8s Deployers.
125
+
See [hoptimator-operator-deployment.yaml](deploy/hoptimator-operator-deployment.yaml) for K8s pod deployment of the operator.
123
126
124
127
## Extending Hoptimator
125
128
126
-
Hoptimator can be extended via `TableTemplates`:
129
+
Hoptimator is extensible via `hoptimator-api`, which provides hooks for deploying, validating, and configuring the elements of a pipeline,
130
+
including external objects (e.g. Kafka topics) and data plane connectors (e.g. Flink connectors).
131
+
To deploy a source or sink, implement `Deployer<Source>`.
132
+
To deploy a job, implement `Deployer<Job>`.
127
133
134
+
In addition, the `k8s` catalog is itself highly extensible via `TableTemplates` and `JobTemplates`.
135
+
Generally, you can get Hoptimator to do what you want without writing any new code.
136
+
137
+
### Table Templates
138
+
139
+
`TableTemplates` let you specify how sources and sinks should be included in a pipeline. For example see [kafkadb.yaml](deploy/samples/kafkadb.yaml).
140
+
141
+
In this case, any tables within `kafka-database` will get deployed as `KafkaTopics` and use `kafka` connectors.
142
+
143
+
### Job Templates
144
+
145
+
`JobTemplates` are similar, but can embed SQL. For example see [flink-template.yaml](deploy/samples/flink-template.yaml).
146
+
147
+
In this case, any jobs created with this template will get deployed as `FlinkSessionJobs` within the `flink` namespace.
148
+
149
+
### Configuration
150
+
151
+
The ``{{ }}`` sections you see in the templates are variable placeholders that will be filled in by the Deployer.
152
+
See [Template.java](hoptimator-util/src/main/java/com/linkedin/hoptimator/util/Template.java) for how to specify templates.
153
+
154
+
While Deployers are extensible, today the primary deployer is to Kubernetes. These deployers
0 commit comments