fengDianDemaNong opened a new issue, #7185:
URL: https://github.com/apache/gravitino/issues/7185
### Version
main branch
### Describe what's wrong
doris 建表语句:CREATE TABLE `dwd_finance_lrb` (
`dt_date` VARCHAR(6) NULL,
`tenant_name` VARCHAR(150) NULL COMMENT '企业名称',
`yysr_bq` DOUBLE NULL COMMENT '营业收入-本期',
`yysr_lj` DOUBLE NULL COMMENT '营业收入-累计',
`j_yycb_bq` DOUBLE NULL COMMENT '减:营业成本-本期',
`j_yycb_lj` DOUBLE NULL COMMENT '减:营业成本-累计',
`j_sjjfj_bq` DOUBLE NULL COMMENT '税金及附加-本期',
`j_sjjfj_lj` DOUBLE NULL COMMENT '税金及附加-累计',
`j_xsfy_bq` DOUBLE NULL COMMENT '销售费用-本期',
`j_xsfy_lj` DOUBLE NULL COMMENT '销售费用-累计',
`j_glfy_bq` DOUBLE NULL COMMENT '管理费用-本期',
`j_glfy_lj` DOUBLE NULL COMMENT '管理费用-累计',
`j_cwfy_bq` DOUBLE NULL COMMENT '财务费用-本期',
`j_cwfy_lj` DOUBLE NULL COMMENT '财务费用-累计',
`j_zcjz_bq` DOUBLE NULL COMMENT '资产减值损失-本期',
`j_zcjz_lj` DOUBLE NULL COMMENT '资产减值损失-累计',
`gyjz_bq` DOUBLE NULL COMMENT '加:公允价值变动收益(损失以-填列)-本期',
`gyjz_lj` DOUBLE NULL COMMENT '加:公允价值变动收益(损失以-填列)-累计',
`tzsy_bq` DOUBLE NULL COMMENT '投资收益(损失以-填列)-本期',
`tzsy_lj` DOUBLE NULL COMMENT '投资收益(损失以-填列)-累计',
`lyhy_tzsy_bq` DOUBLE NULL COMMENT '对联营企业和合营企业的投资收益-本期',
`lyhy_tzsy_lj` DOUBLE NULL COMMENT '对联营企业和合营企业的投资收益-累计',
`yylr_bq` DOUBLE NULL COMMENT '营业利润-本期',
`yylr_lj` DOUBLE NULL COMMENT '营业利润-累计',
`yywsr_bq` DOUBLE NULL COMMENT '营业外收入-本期',
`yywsr_lj` DOUBLE NULL COMMENT '营业外收入-累计',
`j_yywzc_bq` DOUBLE NULL COMMENT '减:营业外支出-本期',
`j_yywzc_lj` DOUBLE NULL COMMENT '减:营业外支出-累计',
`j_fldzc_bq` DOUBLE NULL COMMENT '非流动资产处置损失-本期',
`j_fldzc_lj` DOUBLE NULL COMMENT '非流动资产处置损失-累计',
`lrze_bq` DOUBLE NULL COMMENT '利润总额(亏损总额以-号填列)-本期',
`lrze_lj` DOUBLE NULL COMMENT '利润总额(亏损总额以-号填列)-累计',
`j_sdsfy_bq` DOUBLE NULL COMMENT '减: 所得税费用-本期',
`j_sdsfy_lj` DOUBLE NULL COMMENT '减: 所得税费用-累计',
`jlr_bq` DOUBLE NULL COMMENT '净利润-本期',
`jlr_lj` DOUBLE NULL COMMENT '净利润-累计',
`mgsy_bq` DOUBLE NULL COMMENT '每股收益-本期',
`mgsy_lj` DOUBLE NULL COMMENT '每股收益-累计',
`jbmgsy_bq` DOUBLE NULL COMMENT '基本每股收益-本期',
`jbmgsy_lj` DOUBLE NULL COMMENT '基本每股收益-累计',
`ssmgsy_bq` DOUBLE NULL COMMENT '稀释每股收益-本期',
`ssmgsy_lj` DOUBLE NULL COMMENT '稀释每股收益-累计',
`key_year` INT NULL COMMENT '年份',
`key_month` INT NULL COMMENT '月份',
`create_time` DATETIME NULL COMMENT '创建时间',
`update_time` DATETIME NULL COMMENT '更新时间',
`etl_dt` DATETIME NULL COMMENT '入仓时间',
`dt` DATETIME NULL COMMENT '批次号,默认是当前时间'
) ENGINE=OLAP
UNIQUE KEY(`dt_date`, `tenant_name`)
COMMENT '利润表'
DISTRIBUTED BY HASH(`dt_date`) BUCKETS AUTO
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"min_load_replica_num" = "-1",
"is_being_synced" = "false",
"storage_medium" = "hdd",
"storage_format" = "V2",
"inverted_index_storage_format" = "V1",
"enable_unique_key_merge_on_write" = "true",
"light_schema_change" = "true",
"disable_auto_compaction" = "false",
"enable_single_replica_compaction" = "false",
"group_commit_interval_ms" = "10000",
"group_commit_data_bytes" = "134217728",
"enable_mow_light_delete" = "false"
);
报错:java.lang.IllegalArgumentException: Failed to operate table(s)
[dwd_finance_lrb] operation [LOAD] under schema [dwd], reason [Cannot parse
null string]
java.lang.NumberFormatException: Cannot parse null string
at java.base/java.lang.Integer.parseInt(Integer.java:630)
at java.base/java.lang.Integer.valueOf(Integer.java:999)
at
org.apache.gravitino.catalog.doris.utils.DorisUtils.extractDistributionInfoFromSql(DorisUtils.java:208)
at
org.apache.gravitino.catalog.doris.operation.DorisTableOperations.getDistributionInfo(DorisTableOperations.java:795)
### Error message and/or stacktrace
[root@bigdatadev01 0.9.0]# curl -X GET -H "Accept:
application/vnd.gravitino.v1+json" -H "Content-Type: application/json"
http://localhost:8090/api/metalakes/test/catalogs/doris_test/schemas/dwd/tables/dwd_finance_lrb
{"code":1001,"type":"NumberFormatException","message":"Failed to operate
table(s) [dwd_finance_lrb] operation [LOAD] under schema [dwd], reason [Cannot
parse null string]","stack":["java.lang.NumberFormatException: Cannot parse
null string","\tat
java.base/java.lang.Integer.parseInt(Integer.java:630)","\tat
java.base/java.lang.Integer.valueOf(Integer.java:999)","\tat
org.apache.gravitino.catalog.doris.utils.DorisUtils.extractDistributionInfoFromSql(DorisUtils.java:208)","\tat
org.apache.gravitino.catalog.doris.operation.DorisTableOperations.getDistributionInfo(DorisTableOperations.java:795)","\tat
org.apache.gravitino.catalog.jdbc.operation.JdbcTableOperations.load(JdbcTableOperations.java:226)","\tat
org.apache.gravitino.catalog.jdbc.JdbcCatalogOperations.loadTable(JdbcCatalogOperations.java:331)","\tat
org.apache.gravitino.catalog.TableOperationDispatcher.lambda$internalLoadTable$21(TableOperationDispatcher.java:464)","\tat
org.apache.gravitino.catalog.CatalogManager$CatalogWrap
per.lambda$doWithTableOps$1(CatalogManager.java:160)","\tat
org.apache.gravitino.utils.IsolatedClassLoader.withClassLoader(IsolatedClassLoader.java:86)","\tat
org.apache.gravitino.catalog.CatalogManager$CatalogWrapper.doWithTableOps(CatalogManager.java:155)","\tat
org.apache.gravitino.catalog.TableOperationDispatcher.lambda$internalLoadTable$22(TableOperationDispatcher.java:464)","\tat
org.apache.gravitino.catalog.OperationDispatcher.doWithCatalog(OperationDispatcher.java:100)","\tat
org.apache.gravitino.catalog.TableOperationDispatcher.internalLoadTable(TableOperationDispatcher.java:462)","\tat
org.apache.gravitino.catalog.TableOperationDispatcher.lambda$loadTable$3(TableOperationDispatcher.java:116)","\tat
org.apache.gravitino.lock.TreeLockUtils.doWithTreeLock(TreeLockUtils.java:49)","\tat
org.apache.gravitino.catalog.TableOperationDispatcher.loadTable(TableOperationDispatcher.java:116)","\tat
org.apache.gravitino.hook.TableHookDispatcher.loadTable(TableHookDispatcher.java:63)","\
tat
org.apache.gravitino.catalog.TableNormalizeDispatcher.loadTable(TableNormalizeDispatcher.java:63)","\tat
org.apache.gravitino.listener.TableEventDispatcher.loadTable(TableEventDispatcher.java:99)","\tat
org.apache.gravitino.server.web.rest.TableOperations.lambda$loadTable$2(TableOperations.java:155)","\tat
java.base/java.security.AccessController.doPrivileged(AccessController.java:712)","\tat
java.base/javax.security.auth.Subject.doAs(Subject.java:439)","\tat
org.apache.gravitino.utils.PrincipalUtils.doAs(PrincipalUtils.java:39)","\tat
org.apache.gravitino.server.web.Utils.doAs(Utils.java:198)","\tat
org.apache.gravitino.server.web.rest.TableOperations.loadTable(TableOperations.java:151)","\tat
jdk.internal.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)","\tat
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat
java.base/java.lang.reflect.Method.invoke(Method.java:568)","\tat
org.glassfish.jersey.server.model.
internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)","\tat
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:146)","\tat
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:189)","\tat
org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:176)","\tat
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:93)","\tat
org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:478)","\tat
org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:400)","\tat
org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java
:81)","\tat
org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:256)","\tat
org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)","\tat
org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)","\tat
org.glassfish.jersey.internal.Errors.process(Errors.java:292)","\tat
org.glassfish.jersey.internal.Errors.process(Errors.java:274)","\tat
org.glassfish.jersey.internal.Errors.process(Errors.java:244)","\tat
org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)","\tat
org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:235)","\tat
org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:684)","\tat
org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)","\tat
org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)","\tat
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:358)","\tat
org.glassfish.jersey.servlet.ServletContainer.se
rvice(ServletContainer.java:311)","\tat
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)","\tat
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)","\tat
org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656)","\tat
org.apache.gravitino.server.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:86)","\tat
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)","\tat
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)","\tat
org.apache.gravitino.server.web.VersioningFilter.doFilter(VersioningFilter.java:111)","\tat
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)","\tat
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)","\tat
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552)","\tat
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\
tat
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600)","\tat
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)","\tat
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)","\tat
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)","\tat
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)","\tat
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)","\tat
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)","\tat
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505)","\tat
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)","\tat
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)","\tat
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)","\tat
org.eclipse.jetty.server.handl
er.ScopedHandler.handle(ScopedHandler.java:141)","\tat
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)","\tat
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)","\tat
org.eclipse.jetty.server.Server.handle(Server.java:516)","\tat
org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)","\tat
org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)","\tat
org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)","\tat
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)","\tat
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)","\tat
org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)","\tat
org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)","\tat
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)","\tat
org.eclipse.jetty.util.thread.strategy.EatWh
atYouKill.doProduce(EatWhatYouKill.java:315)","\tat
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)","\tat
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)","\tat
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)","\tat
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)","\tat
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)","\tat
java.base/java.lang.Thread.run(Thread.java:833)"]}
### How to reproduce
在doris建表:CREATE TABLE `dwd_finance_lrb` (
`dt_date` VARCHAR(6) NULL,
`tenant_name` VARCHAR(150) NULL COMMENT '企业名称',
`yysr_bq` DOUBLE NULL COMMENT '营业收入-本期',
`yysr_lj` DOUBLE NULL COMMENT '营业收入-累计',
`j_yycb_bq` DOUBLE NULL COMMENT '减:营业成本-本期',
`j_yycb_lj` DOUBLE NULL COMMENT '减:营业成本-累计',
`j_sjjfj_bq` DOUBLE NULL COMMENT '税金及附加-本期',
`j_sjjfj_lj` DOUBLE NULL COMMENT '税金及附加-累计',
`j_xsfy_bq` DOUBLE NULL COMMENT '销售费用-本期',
`j_xsfy_lj` DOUBLE NULL COMMENT '销售费用-累计',
`j_glfy_bq` DOUBLE NULL COMMENT '管理费用-本期',
`j_glfy_lj` DOUBLE NULL COMMENT '管理费用-累计',
`j_cwfy_bq` DOUBLE NULL COMMENT '财务费用-本期',
`j_cwfy_lj` DOUBLE NULL COMMENT '财务费用-累计',
`j_zcjz_bq` DOUBLE NULL COMMENT '资产减值损失-本期',
`j_zcjz_lj` DOUBLE NULL COMMENT '资产减值损失-累计',
`gyjz_bq` DOUBLE NULL COMMENT '加:公允价值变动收益(损失以-填列)-本期',
`gyjz_lj` DOUBLE NULL COMMENT '加:公允价值变动收益(损失以-填列)-累计',
`tzsy_bq` DOUBLE NULL COMMENT '投资收益(损失以-填列)-本期',
`tzsy_lj` DOUBLE NULL COMMENT '投资收益(损失以-填列)-累计',
`lyhy_tzsy_bq` DOUBLE NULL COMMENT '对联营企业和合营企业的投资收益-本期',
`lyhy_tzsy_lj` DOUBLE NULL COMMENT '对联营企业和合营企业的投资收益-累计',
`yylr_bq` DOUBLE NULL COMMENT '营业利润-本期',
`yylr_lj` DOUBLE NULL COMMENT '营业利润-累计',
`yywsr_bq` DOUBLE NULL COMMENT '营业外收入-本期',
`yywsr_lj` DOUBLE NULL COMMENT '营业外收入-累计',
`j_yywzc_bq` DOUBLE NULL COMMENT '减:营业外支出-本期',
`j_yywzc_lj` DOUBLE NULL COMMENT '减:营业外支出-累计',
`j_fldzc_bq` DOUBLE NULL COMMENT '非流动资产处置损失-本期',
`j_fldzc_lj` DOUBLE NULL COMMENT '非流动资产处置损失-累计',
`lrze_bq` DOUBLE NULL COMMENT '利润总额(亏损总额以-号填列)-本期',
`lrze_lj` DOUBLE NULL COMMENT '利润总额(亏损总额以-号填列)-累计',
`j_sdsfy_bq` DOUBLE NULL COMMENT '减: 所得税费用-本期',
`j_sdsfy_lj` DOUBLE NULL COMMENT '减: 所得税费用-累计',
`jlr_bq` DOUBLE NULL COMMENT '净利润-本期',
`jlr_lj` DOUBLE NULL COMMENT '净利润-累计',
`mgsy_bq` DOUBLE NULL COMMENT '每股收益-本期',
`mgsy_lj` DOUBLE NULL COMMENT '每股收益-累计',
`jbmgsy_bq` DOUBLE NULL COMMENT '基本每股收益-本期',
`jbmgsy_lj` DOUBLE NULL COMMENT '基本每股收益-累计',
`ssmgsy_bq` DOUBLE NULL COMMENT '稀释每股收益-本期',
`ssmgsy_lj` DOUBLE NULL COMMENT '稀释每股收益-累计',
`key_year` INT NULL COMMENT '年份',
`key_month` INT NULL COMMENT '月份',
`create_time` DATETIME NULL COMMENT '创建时间',
`update_time` DATETIME NULL COMMENT '更新时间',
`etl_dt` DATETIME NULL COMMENT '入仓时间',
`dt` DATETIME NULL COMMENT '批次号,默认是当前时间'
) ENGINE=OLAP
UNIQUE KEY(`dt_date`, `tenant_name`)
COMMENT '利润表'
DISTRIBUTED BY HASH(`dt_date`) BUCKETS AUTO
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"min_load_replica_num" = "-1",
"is_being_synced" = "false",
"storage_medium" = "hdd",
"storage_format" = "V2",
"inverted_index_storage_format" = "V1",
"enable_unique_key_merge_on_write" = "true",
"light_schema_change" = "true",
"disable_auto_compaction" = "false",
"enable_single_replica_compaction" = "false",
"group_commit_interval_ms" = "10000",
"group_commit_data_bytes" = "134217728",
"enable_mow_light_delete" = "false"
);
2、在gravitino建对应catalog:
3、通过java api调用:@org.junit.Test
public void tes() {
GravitinoClient gravitinoClient = GravitinoClient
.builder(url)
.withMetalake("test")
.build();
Catalog catalog = gravitinoClient.loadCatalog("doris_test");
TableCatalog tableCatalog = catalog.asTableCatalog();
// 获取指定catalog下的指定scheam下指定表的所有字段
Table table = tableCatalog.loadTable(NameIdentifier.of("dwd",
"dwd_finance_lrb"));
println("表名:"+table.comment());
Arrays.stream(table.columns()).forEach(column -> {
println("column:"+column.name()+",类型:"+column.dataType().name()+",注释:"+column.comment());
});
}
或者:通过api请求: curl -X GET -H "Accept: application/vnd.gravitino.v1+json" -H
"Content-Type: application/json"
http://localhost:8090/api/metalakes/test/catalogs/doris_test/schemas/dwd/tables/dwd_finance_lrb
应该是数据类型处理异常了
### Additional context
_No response_
--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]