wuchong commented on a change in pull request #11804:
URL: https://github.com/apache/flink/pull/11804#discussion_r411846216
##########
File path: docs/dev/table/catalogs.md
##########
@@ -37,6 +41,76 @@ Or permanent metadata, like that in a Hive Metastore.
Catalogs provide a unified
The `GenericInMemoryCatalog` is an in-memory implementation of a catalog. All
objects will be available only for the lifetime of the session.
+### JDBCCatalog
+
+The `JDBCCatalog` enables users to connect Flink to relational databases over
JDBC protocol.
+
+#### PostgresCatalog
+
+`PostgresCatalog` is the only implementation of JDBC Catalog at the moment.
+
+To set a `JDBCcatalog`,
Review comment:
```suggestion
To set a `JDBCatalog`,
```
##########
File path: docs/dev/table/catalogs.md
##########
@@ -37,6 +41,76 @@ Or permanent metadata, like that in a Hive Metastore.
Catalogs provide a unified
The `GenericInMemoryCatalog` is an in-memory implementation of a catalog. All
objects will be available only for the lifetime of the session.
+### JDBCCatalog
+
+The `JDBCCatalog` enables users to connect Flink to relational databases over
JDBC protocol.
+
+#### PostgresCatalog
+
+`PostgresCatalog` is the only implementation of JDBC Catalog at the moment.
+
+To set a `JDBCcatalog`,
+
+<div class="codetabs" markdown="1">
+<div data-lang="Java" markdown="1">
+{% highlight java %}
+
+EnvironmentSettings settings =
EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build();
+TableEnvironment tableEnv = TableEnvironment.create(settings);
+
+String name = "mypg";
+String defaultDatabase = "mydb";
+String username = "...";
+String password = "...";
+String baseUrl = "jdbc:postgresql://<ip>:<port>"; # should not contain
database name here
Review comment:
```suggestion
String baseUrl = "jdbc:postgresql://<ip>:<port>"; // should not
contain database name here
```
##########
File path: docs/dev/table/catalogs.md
##########
@@ -37,6 +41,76 @@ Or permanent metadata, like that in a Hive Metastore.
Catalogs provide a unified
The `GenericInMemoryCatalog` is an in-memory implementation of a catalog. All
objects will be available only for the lifetime of the session.
+### JDBCCatalog
+
+The `JDBCCatalog` enables users to connect Flink to relational databases over
JDBC protocol.
+
+#### PostgresCatalog
+
+`PostgresCatalog` is the only implementation of JDBC Catalog at the moment.
+
+To set a `JDBCcatalog`,
+
+<div class="codetabs" markdown="1">
+<div data-lang="Java" markdown="1">
+{% highlight java %}
+
+EnvironmentSettings settings =
EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build();
+TableEnvironment tableEnv = TableEnvironment.create(settings);
+
+String name = "mypg";
+String defaultDatabase = "mydb";
+String username = "...";
+String password = "...";
+String baseUrl = "jdbc:postgresql://<ip>:<port>"; # should not contain
database name here
+
+JDBCCatalog catalog = new JDBCCatalog(name, defaultDatabase, username,
password, baseUrl);
+tableEnv.registerCatalog("mypg", catalog);
+
+// set the JDBCCatalog as the current catalog of the session
+tableEnv.useCatalog("mypg");
+{% endhighlight %}
+</div>
+<div data-lang="Scala" markdown="1">
+{% highlight scala %}
+
+val settings =
EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build()
+val tableEnv = TableEnvironment.create(settings)
+
+val name = "mypg";
+val defaultDatabase = "mydb";
+val username = "...";
+val password = "...";
+val baseUrl = "jdbc:postgresql://<ip>:<port>"; # should not contain
database name here
+
+val catalog = new JDBCCatalog(name, defaultDatabase, username, password,
baseUrl);
+tableEnv.registerCatalog("mypg", catalog);
+
+// set the JDBCCatalog as the current catalog of the session
+tableEnv.useCatalog("mypg");
+{% endhighlight %}
+</div>
+<div data-lang="YAML" markdown="1">
+{% highlight yaml %}
+
+execution:
+ planner: blink
+ ...
+ current-catalog: mypg # set the JDBCCatalog as the current catalog of the
session
+ current-database: mydb
+
+catalogs:
+ - name: mypg
+ type: jdbc
+ default-database: mydb
+ username: ...
+ password: ...
+ base-url: jdbc:postgresql://<ip>:<port>
+{% endhighlight %}
Review comment:
Could you add some descriptions for the parameters? For example, what's
meaning of the parameters, is it required or optional?
##########
File path: docs/dev/table/catalogs.md
##########
@@ -37,6 +41,76 @@ Or permanent metadata, like that in a Hive Metastore.
Catalogs provide a unified
The `GenericInMemoryCatalog` is an in-memory implementation of a catalog. All
objects will be available only for the lifetime of the session.
+### JDBCCatalog
+
+The `JDBCCatalog` enables users to connect Flink to relational databases over
JDBC protocol.
+
+#### PostgresCatalog
+
+`PostgresCatalog` is the only implementation of JDBC Catalog at the moment.
+
+To set a `JDBCcatalog`,
+
+<div class="codetabs" markdown="1">
+<div data-lang="Java" markdown="1">
+{% highlight java %}
+
+EnvironmentSettings settings =
EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build();
+TableEnvironment tableEnv = TableEnvironment.create(settings);
+
+String name = "mypg";
+String defaultDatabase = "mydb";
+String username = "...";
+String password = "...";
+String baseUrl = "jdbc:postgresql://<ip>:<port>"; # should not contain
database name here
+
+JDBCCatalog catalog = new JDBCCatalog(name, defaultDatabase, username,
password, baseUrl);
+tableEnv.registerCatalog("mypg", catalog);
+
+// set the JDBCCatalog as the current catalog of the session
+tableEnv.useCatalog("mypg");
+{% endhighlight %}
+</div>
+<div data-lang="Scala" markdown="1">
+{% highlight scala %}
+
+val settings =
EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build()
+val tableEnv = TableEnvironment.create(settings)
+
+val name = "mypg";
+val defaultDatabase = "mydb";
+val username = "...";
+val password = "...";
+val baseUrl = "jdbc:postgresql://<ip>:<port>"; # should not contain
database name here
Review comment:
```suggestion
val baseUrl = "jdbc:postgresql://<ip>:<port>"; // should not contain
database name here
```
##########
File path: docs/dev/table/catalogs.md
##########
@@ -37,6 +41,76 @@ Or permanent metadata, like that in a Hive Metastore.
Catalogs provide a unified
The `GenericInMemoryCatalog` is an in-memory implementation of a catalog. All
objects will be available only for the lifetime of the session.
+### JDBCCatalog
+
+The `JDBCCatalog` enables users to connect Flink to relational databases over
JDBC protocol.
+
+#### PostgresCatalog
+
+`PostgresCatalog` is the only implementation of JDBC Catalog at the moment.
+
+To set a `JDBCcatalog`,
+
+<div class="codetabs" markdown="1">
+<div data-lang="Java" markdown="1">
+{% highlight java %}
+
+EnvironmentSettings settings =
EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build();
+TableEnvironment tableEnv = TableEnvironment.create(settings);
+
+String name = "mypg";
+String defaultDatabase = "mydb";
+String username = "...";
+String password = "...";
+String baseUrl = "jdbc:postgresql://<ip>:<port>"; # should not contain
database name here
+
+JDBCCatalog catalog = new JDBCCatalog(name, defaultDatabase, username,
password, baseUrl);
+tableEnv.registerCatalog("mypg", catalog);
+
+// set the JDBCCatalog as the current catalog of the session
+tableEnv.useCatalog("mypg");
+{% endhighlight %}
+</div>
+<div data-lang="Scala" markdown="1">
+{% highlight scala %}
+
+val settings =
EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build()
+val tableEnv = TableEnvironment.create(settings)
+
+val name = "mypg";
+val defaultDatabase = "mydb";
+val username = "...";
+val password = "...";
+val baseUrl = "jdbc:postgresql://<ip>:<port>"; # should not contain
database name here
+
+val catalog = new JDBCCatalog(name, defaultDatabase, username, password,
baseUrl);
+tableEnv.registerCatalog("mypg", catalog);
+
+// set the JDBCCatalog as the current catalog of the session
+tableEnv.useCatalog("mypg");
+{% endhighlight %}
+</div>
+<div data-lang="YAML" markdown="1">
Review comment:
Do we support to use DDL to create a catalog? IIRC, we support syntax
`CREATE CATALOG xxx WITH (...)`.
##########
File path: docs/dev/table/catalogs.md
##########
@@ -37,6 +41,76 @@ Or permanent metadata, like that in a Hive Metastore.
Catalogs provide a unified
The `GenericInMemoryCatalog` is an in-memory implementation of a catalog. All
objects will be available only for the lifetime of the session.
+### JDBCCatalog
+
+The `JDBCCatalog` enables users to connect Flink to relational databases over
JDBC protocol.
+
+#### PostgresCatalog
+
+`PostgresCatalog` is the only implementation of JDBC Catalog at the moment.
+
+To set a `JDBCcatalog`,
+
+<div class="codetabs" markdown="1">
+<div data-lang="Java" markdown="1">
+{% highlight java %}
+
+EnvironmentSettings settings =
EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build();
+TableEnvironment tableEnv = TableEnvironment.create(settings);
+
+String name = "mypg";
+String defaultDatabase = "mydb";
+String username = "...";
+String password = "...";
+String baseUrl = "jdbc:postgresql://<ip>:<port>"; # should not contain
database name here
+
+JDBCCatalog catalog = new JDBCCatalog(name, defaultDatabase, username,
password, baseUrl);
+tableEnv.registerCatalog("mypg", catalog);
+
+// set the JDBCCatalog as the current catalog of the session
+tableEnv.useCatalog("mypg");
+{% endhighlight %}
+</div>
+<div data-lang="Scala" markdown="1">
+{% highlight scala %}
+
+val settings =
EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build()
+val tableEnv = TableEnvironment.create(settings)
+
+val name = "mypg";
+val defaultDatabase = "mydb";
+val username = "...";
+val password = "...";
+val baseUrl = "jdbc:postgresql://<ip>:<port>"; # should not contain
database name here
+
+val catalog = new JDBCCatalog(name, defaultDatabase, username, password,
baseUrl);
+tableEnv.registerCatalog("mypg", catalog);
+
+// set the JDBCCatalog as the current catalog of the session
+tableEnv.useCatalog("mypg");
Review comment:
Remove `;` for Scala codes.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]