Hi Dongwon, You are hitting a known bug[1] which is fixed in 1.11.3 and 1.12.0
Another tip, currently, LIKE clause cannot work with Hive table. (General table stored in hive metastore should work) [1] https://issues.apache.org/jira/browse/FLINK-19281 Dongwon Kim <eastcirc...@gmail.com> 于2020年11月17日周二 上午12:04写道: > Hi Danny~ > Sorry for late reply, > > Let's take a look at a running example: > >> EnvironmentSettings settings = EnvironmentSettings.newInstance() >> .inBatchMode() >> .build(); >> >> TableEnvironment tEnv = TableEnvironment.create(settings); >> >> HiveCatalog hiveCatalog = new HiveCatalog("hive",null, args[1]); >> tEnv.registerCatalog("hive", hiveCatalog); >> >> GenericInMemoryCatalog inmemCatalog = new GenericInMemoryCatalog("inmem"); >> tEnv.registerCatalog("inmem", inmemCatalog); >> tEnv.useCatalog("inmem"); >> >> TableResult result = tEnv.executeSql( >> "CREATE TABLE copied LIKE hive.navi.gps" >> ); >> > > I've got the following log messages: > >> 00:50:22,157 INFO org.apache.flink.table.catalog.hive.HiveCatalog >> [] - Setting hive conf dir as /Users/eastcirclek/hive-conf >> 00:50:22,503 INFO org.apache.flink.table.catalog.hive.HiveCatalog >> [] - Created HiveCatalog 'hive' >> 00:50:22,515 INFO hive.metastore >> [] - Trying to connect to metastore with URI thrift://...:9083 >> 00:50:22,678 INFO hive.metastore >> [] - Connected to metastore. >> 00:50:22,678 INFO org.apache.flink.table.catalog.hive.HiveCatalog >> [] - Connected to Hive metastore >> 00:50:22,799 INFO org.apache.flink.table.catalog.CatalogManager >> [] - Set the current default catalog as [inmem] and the current >> default database as [default]. >> *Exception in thread "main" >> org.apache.flink.table.api.ValidationException: Source table >> '`inmem`.`default`.`hive.navi.gps`' of the LIKE clause not found in the >> catalog, at line 1, column 26* >> at >> org.apache.flink.table.planner.operations.SqlCreateTableConverter.lambda$lookupLikeSourceTable$1(SqlCreateTableConverter.java:147) >> at java.util.Optional.orElseThrow(Optional.java:290) >> at >> org.apache.flink.table.planner.operations.SqlCreateTableConverter.lookupLikeSourceTable(SqlCreateTableConverter.java:147) >> at >> org.apache.flink.table.planner.operations.SqlCreateTableConverter.createCatalogTable(SqlCreateTableConverter.java:96) >> at >> org.apache.flink.table.planner.operations.SqlCreateTableConverter.convertCreateTable(SqlCreateTableConverter.java:76) >> at >> org.apache.flink.table.planner.operations.SqlToOperationConverter.convert(SqlToOperationConverter.java:190) >> at >> org.apache.flink.table.planner.delegation.ParserImpl.parse(ParserImpl.java:78) >> at >> org.apache.flink.table.api.internal.TableEnvironmentImpl.executeSql(TableEnvironmentImpl.java:684) >> at Test.main(Test.java:53) >> > > It seems like hive.navi.gps is recognized as a table name as a whole. > I currently declare such a table by specifying all fields without the LIKE > clause. > > Do I miss something? > > FYI, I'm working with Flink-1.11.2. > > Thank you~ > > Best, > > Dongwon > > > On Fri, Nov 13, 2020 at 5:19 PM Danny Chan <danny0...@apache.org> wrote: > >> Hi Dongwon ~ >> >> Table from different catalog/db is supported, you need to specify the >> full path of the source table: >> >> CREATE TABLE Orders_with_watermark ( >> *...*) WITH ( >> *...*)LIKE my_catalog.my_db.Orders; >> >> >> Dongwon Kim <eastcirc...@gmail.com> 于2020年11月11日周三 下午2:53写道: >> >>> Hi, >>> >>> Is it disallowed to refer to a table from different databases or >>> catalogs when someone creates a table? >>> >>> According to [1], there's no way to refer to tables belonging to >>> different databases or catalogs. >>> >>> [1] >>> https://ci.apache.org/projects/flink/flink-docs-master/dev/table/sql/create.html#create-table >>> >>> Best, >>> >>> Dongwon >>> >> -- Best, Benchao Li