-
Notifications
You must be signed in to change notification settings - Fork 702
Description
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$CatalogWrapper.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.service(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.handler.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.EatWhatYouKill.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