Hello,
I am looking for an elaboration, or work around, of an old answer to this
question here (
https://stackoverflow.com/questions/56049472/create-sql-table-from-a-datastream-in-a-java-scala-program-and-query-it-from-sql)
which mentions that registering the table can make it visible to the SQL
client.
I am using Flink 1.8.1 with Java 11. I downloaded Flink 1.8.1 bundle, put
its `bin` folder in path, and started the cluster using `start-cluster.sh`.
I created a simple Flink job that generates stream of random integers and
creates a table as follows:
```Java
final StreamExecutionEnvironment env =
StreamExecutionEnvironment.getExecutionEnvironment();
StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env);
// Create a DataStream of random integers
DataStream<Integer> intStream = env.addSource(new
RandomIntegerSource());
// Convert DataStream to Table
Table table = tableEnv.fromDataStream(intStream, "number");
// Register the table
tableEnv.registerTable("RandomNumbers", table);
// Execute the job
env.execute("Random Integer Job");
```
Then, I started `sql-client.sh` and queried as follows
```SQL
Flink SQL> show catalogs;
+-----------------+
| catalog name |
+-----------------+
| default_catalog |
+-----------------+
1 row in set
Flink SQL> USE CATALOG default_catalog;
[INFO] Execute statement succeed.
Flink SQL> SHOW databases;
+------------------+
| database name |
+------------------+
| default_database |
+------------------+
1 row in set
Flink SQL> USE default_database;
[INFO] Execute statement succeed.
Flink SQL> SHOW tables;
Empty set
```
As can be seen, I don't see `RandomNumbers` table.
How can I make that table visible to SQL client?