hi,各位:
我在开发过程中,通过下面方式注册table时,默认使用的catalog是EnvironmentSettings.DEFAULT_BUILTIN_CATALOG streamTableEnvironment.registerDataStream(tableName, dataStream, fields);尝试通过下面方式解决,但是注册的table仍然在EnvironmentSettings.DEFAULT_BUILTIN_CATALOG中 streamTableEnvironment.registerCatalog(catalogName, new InMemoryExternalCatalog(catalogName)); streamTableEnvironment.useCatalog(catalogName);请问,我如何将table注册到指定的catalog? [hidden email] |
hi,
streamTableEnvironment.registerDataStream(tableName, dataStream, fields); 注册的表都是Temporary Table。 你可以通过: catalog = new InMemoryExternalCatalog(catalogName); streamTableEnvironment.registerCatalog(catalogName, catalog); catalog.createTable() 或者 streamTableEnvironment.getCatalog().get().createTable() 的方式来注册表到指定的catalog [hidden email] <[hidden email]> 于2020年1月7日周二 下午3:20写道: > hi,各位: > > 我在开发过程中,通过下面方式注册table时,默认使用的catalog是EnvironmentSettings.DEFAULT_BUILTIN_CATALOG > streamTableEnvironment.registerDataStream(tableName, dataStream, > fields);尝试通过下面方式解决,但是注册的table仍然在EnvironmentSettings.DEFAULT_BUILTIN_CATALOG中 > streamTableEnvironment.registerCatalog(catalogName, new > InMemoryExternalCatalog(catalogName)); > streamTableEnvironment.useCatalog(catalogName);请问,我如何将table注册到指定的catalog? > > > [hidden email] > |
临时表的话只能放在指定的catalog中,不建议将临时表注册到另一个catalog,比如hive catalog。
临时表大部分情况下是不能序列化的,那样的话代码会报错。 Best, Kurt On Tue, Jan 7, 2020 at 9:20 PM 贺小令 <[hidden email]> wrote: > hi, > > streamTableEnvironment.registerDataStream(tableName, dataStream, fields); > 注册的表都是Temporary Table。 > > 你可以通过: > catalog = new InMemoryExternalCatalog(catalogName); > streamTableEnvironment.registerCatalog(catalogName, catalog); > catalog.createTable() > > 或者 > streamTableEnvironment.getCatalog().get().createTable() > > 的方式来注册表到指定的catalog > > > [hidden email] <[hidden email]> 于2020年1月7日周二 下午3:20写道: > > > hi,各位: > > > > > 我在开发过程中,通过下面方式注册table时,默认使用的catalog是EnvironmentSettings.DEFAULT_BUILTIN_CATALOG > > streamTableEnvironment.registerDataStream(tableName, dataStream, > > > fields);尝试通过下面方式解决,但是注册的table仍然在EnvironmentSettings.DEFAULT_BUILTIN_CATALOG中 > > streamTableEnvironment.registerCatalog(catalogName, new > > InMemoryExternalCatalog(catalogName)); > > streamTableEnvironment.useCatalog(catalogName);请问,我如何将table注册到指定的catalog? > > > > > > [hidden email] > > > |
Hi xiyueha,
你可以用TableEnv.sqlUpdate("create table ...")的DDL的方式,这会注册到当前catalog中。 Best, Jingsong Lee ------------------------------------------------------------------ From:Kurt Young <[hidden email]> Send Time:2020年1月8日(星期三) 09:17 To:user-zh <[hidden email]> Cc:xiyueha <[hidden email]> Subject:Re: 注册table时catalog无法变更 临时表的话只能放在指定的catalog中,不建议将临时表注册到另一个catalog,比如hive catalog。 临时表大部分情况下是不能序列化的,那样的话代码会报错。 Best, Kurt On Tue, Jan 7, 2020 at 9:20 PM 贺小令 <[hidden email]> wrote: > hi, > > streamTableEnvironment.registerDataStream(tableName, dataStream, fields); > 注册的表都是Temporary Table。 > > 你可以通过: > catalog = new InMemoryExternalCatalog(catalogName); > streamTableEnvironment.registerCatalog(catalogName, catalog); > catalog.createTable() > > 或者 > streamTableEnvironment.getCatalog().get().createTable() > > 的方式来注册表到指定的catalog > > > [hidden email] <[hidden email]> 于2020年1月7日周二 下午3:20写道: > > > hi,各位: > > > > > 我在开发过程中,通过下面方式注册table时,默认使用的catalog是EnvironmentSettings.DEFAULT_BUILTIN_CATALOG > > streamTableEnvironment.registerDataStream(tableName, dataStream, > > > fields);尝试通过下面方式解决,但是注册的table仍然在EnvironmentSettings.DEFAULT_BUILTIN_CATALOG中 > > streamTableEnvironment.registerCatalog(catalogName, new > > InMemoryExternalCatalog(catalogName)); > > streamTableEnvironment.useCatalog(catalogName);请问,我如何将table注册到指定的catalog? > > > > > > [hidden email] > > > |
Free forum by Nabble | Edit this page |