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?

Reply via email to