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]

Reply via email to