김태겸
10/22/2025, 8:12 AM김태겸
10/22/2025, 8:12 AM> SELECT flat_json_meta(event_params) from uba.raw_event[_META_];
ERROR 1064 (HY000): Multiple entries with same key: `event_params.brand_id` varchar NULL COMMENT ""=36: event_params.brand_id and `event_params.brand_id` varchar NULL COMMENT ""=35: event_params.brand_id
SHOW CREATE TABLE uba.raw_event;
| raw_event | CREATE TABLE `raw_event` (
`event_id` varchar(50) NULL COMMENT "",
`server_access_time` datetime NULL COMMENT "",
`access_time` datetime NULL COMMENT "",
`bp_cid` varchar(100) NULL COMMENT "",
`bp_m_ver` varchar(50) NULL COMMENT "",
`bp_sid` varchar(100) NULL COMMENT "",
`bp_aid` varchar(100) NULL COMMENT "",
`bp_p_type` varchar(50) NULL COMMENT "",
`bp_a_name` varchar(100) NULL COMMENT "",
`bp_s_country` varchar(10) NULL COMMENT "",
`bp_locale` varchar(10) NULL COMMENT "",
`ohouse_user_id` varchar(10) NULL COMMENT "",
`object_id` varchar(100) NULL COMMENT "",
`object_type` varchar(50) NULL COMMENT "",
`object_section` varchar(100) NULL COMMENT "",
`object_section_id` varchar(100) NULL COMMENT "",
`object_idx` int(11) NULL COMMENT "",
`page_id` varchar(100) NULL COMMENT "",
`page_params` json NULL COMMENT "",
`category` varchar(50) NULL COMMENT "",
`event_params` json NULL COMMENT "",
`_debug_info` json NULL COMMENT "",
`event_date` date NULL AS date(`server_access_time`) COMMENT "",
`event_year` smallint(6) NULL AS year(`server_access_time`) COMMENT "",
`event_month` tinyint(4) NULL AS month(`server_access_time`) COMMENT "",
`event_day` tinyint(4) NULL AS day(`server_access_time`) COMMENT ""
) ENGINE=OLAP
UNIQUE KEY(`event_id`, `server_access_time`)
COMMENT "OLAP"
PARTITION BY time_slice(server_access_time, 30, 'minute', 'floor')
DISTRIBUTED BY HASH(`event_id`)
PROPERTIES (
"compression" = "ZSTD",
"datacache.enable" = "false",
"enable_async_write_back" = "false",
"file_bundling" = "true",
"partition_retention_condition" = "server_access_time >= CURRENT_DATE() - INTERVAL 3 MONTH",
"replication_num" = "1",
"storage_volume" = "builtin_storage_volume"
); |김태겸
10/22/2025, 8:13 AMevent_params.brand_id (which is json column..)김태겸
10/22/2025, 8:17 AM2025-10-22 17:15:00.217+09:00 WARN (starrocks-taskrun-pool-12|303) [TaskRunExecutor.lambda$executeTaskRun$0():63] failed to execute TaskRun.
com.starrocks.sql.common.DmlException: Refresh mv mv_delivery_tracking_pageview failed after 1 times, try lock failed: 0, error-msg : java.lang.IllegalArgumentException: Multiple entries with same key: `event_params.brand_id` varchar NULL COMMENT ""=36: event_params.brand_id and `event_params.brand_id` varchar NULL COMMENT ""=35: event_params.brand_id
at com.google.common.collect.ImmutableMap.conflictException(ImmutableMap.java:378)
at com.google.common.collect.ImmutableMap.checkNoConflict(ImmutableMap.java:372)
at com.google.common.collect.RegularImmutableMap.checkNoConflictInKeyBucket(RegularImmutableMap.java:246)
at com.google.common.collect.RegularImmutableMap.fromEntryArrayCheckingBucketOverflow(RegularImmutableMap.java:133)
at com.google.common.collect.RegularImmutableMap.fromEntryArray(RegularImmutableMap.java:95)
at com.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:572)
at com.google.common.collect.ImmutableMap$Builder.buildOrThrow(ImmutableMap.java:600)
at com.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:587)
at com.starrocks.sql.optimizer.transformer.RelationTransformer.visitTable(RelationTransformer.java:607)
at com.starrocks.sql.optimizer.transformer.RelationTransformer.visitTable(RelationTransformer.java:162)
at com.starrocks.sql.ast.TableRelation.accept(TableRelation.java:201)
at com.starrocks.sql.ast.AstVisitor.visit(AstVisitor.java:105)
at com.starrocks.sql.ast.AstVisitor.visit(AstVisitor.java:101)
at com.starrocks.sql.optimizer.transformer.QueryTransformer.planFrom(QueryTransformer.java:170)
at com.starrocks.sql.optimizer.transformer.QueryTransformer.plan(QueryTransformer.java:84)
at com.starrocks.sql.optimizer.transformer.RelationTransformer.visitSelect(RelationTransformer.java:290)
at com.starrocks.sql.optimizer.transformer.RelationTransformer.visitSelect(RelationTransformer.java:162)
at com.starrocks.sql.ast.SelectRelation.accept(SelectRelation.java:232)
at com.starrocks.sql.ast.AstVisitor.visit(AstVisitor.java:105)
at com.starrocks.sql.ast.AstVisitor.visit(AstVisitor.java:101)
at com.starrocks.sql.optimizer.transformer.RelationTransformer.transform(RelationTransformer.java:228)
at com.starrocks.sql.InsertPlanner.plan(InsertPlanner.java:285)
at com.starrocks.sql.StatementPlanner.planInsertStmt(StatementPlanner.java:262)
at com.starrocks.scheduler.PartitionBasedMvRefreshProcessor.prepareRefreshPlan(PartitionBasedMvRefreshProcessor.java:583)
at com.starrocks.scheduler.PartitionBasedMvRefreshProcessor.doRefreshMaterializedView(PartitionBasedMvRefreshProcessor.java:521)
at com.starrocks.scheduler.PartitionBasedMvRefreshProcessor.doRefreshMaterializedViewWithRetry(PartitionBasedMvRefreshProcessor.java:430)
at com.starrocks.scheduler.PartitionBasedMvRefreshProcessor.doMvRefresh(PartitionBasedMvRefreshProcessor.java:382)
at com.starrocks.scheduler.PartitionBasedMvRefreshProcessor.processTaskRun(PartitionBasedMvRefreshProcessor.java:215)
at com.starrocks.scheduler.TaskRun.executeTaskRun(TaskRun.java:352)
at com.starrocks.scheduler.TaskRunExecutor.lambda$executeTaskRun$0(TaskRunExecutor.java:60)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
at com.starrocks.scheduler.PartitionBasedMvRefreshProcessor.doRefreshMaterializedViewWithRetry(PartitionBasedMvRefreshProcessor.java:450)
at com.starrocks.scheduler.PartitionBasedMvRefreshProcessor.doMvRefresh(PartitionBasedMvRefreshProcessor.java:382)
at com.starrocks.scheduler.PartitionBasedMvRefreshProcessor.processTaskRun(PartitionBasedMvRefreshProcessor.java:215)
at com.starrocks.scheduler.TaskRun.executeTaskRun(TaskRun.java:352)
at com.starrocks.scheduler.TaskRunExecutor.lambda$executeTaskRun$0(TaskRunExecutor.java:60)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)Kevin Cai
10/22/2025, 8:38 AMmv_delivery_tracking_pageview김태겸
10/22/2025, 8:40 AM> show create materialized view mv_delivery_tracking_pageview;
| mv_delivery_tracking_pageview | CREATE MATERIALIZED VIEW `mv_delivery_tracking_pageview` (`event_id`, `bp_cid`, `bp_sid`, `bp_aid`, `bp_p_type`, `bp_a_name`, `bp_s_country`, `bp_locale`, `bp_m_ver`, `ohouse_user_id`, `page_id`, `page_params`, `category`, `event_params`, `event_date`, `event_time`)
COMMENT "MATERIALIZED_VIEW"
PARTITION BY (date_trunc('hour', `event_time`))
DISTRIBUTED BY HASH(`event_id`)
ORDER BY (event_id,event_time)
REFRESH ASYNC
PROPERTIES (
"replicated_storage" = "true",
"replication_num" = "1",
"partition_ttl_number" = "720",
"auto_refresh_partitions_limit" = "100",
"partition_refresh_number" = "1",
"datacache.enable" = "true",
"enable_async_write_back" = "false",
"storage_volume" = "builtin_storage_volume",
"warehouse" = "default_warehouse"
)
AS SELECT `raw_event`.`event_id`, `raw_event`.`bp_cid`, `raw_event`.`bp_sid`, `raw_event`.`bp_aid`, `raw_event`.`bp_p_type`, `raw_event`.`bp_a_name`, `raw_event`.`bp_s_country`, `raw_event`.`bp_locale`, `raw_event`.`bp_m_ver`, `raw_event`.`ohouse_user_id`, `raw_event`.`page_id`, `raw_event`.`page_params`, `raw_event`.`category`, `raw_event`.`event_params`, `raw_event`.`event_date`, `raw_event`.`server_access_time` AS `event_time`
FROM `uba`.`raw_event`
WHERE ((1 = 1) AND (`raw_event`.`page_id` = 'DELIVERY_TRACKING')) AND (`raw_event`.`category` = 'PAGEVIEW'); |이세찬
10/22/2025, 8:42 AMSELECT flat_json_meta(event_params)
FROM uba.raw_event[_META_];
...
CAST(json_query(event_params, '$.brand_id') AS VARCHAR),
CAST(json_query(event_params, '$."Brand_Id"') AS VARCHAR),
CAST(json_query(event_params, '$.brandId') AS VARCHAR)
I think it would be a good idea to check for key coexistence like this.김태겸
10/22/2025, 8:50 AMStarRocks > SELECT flat_json_meta(event_params) FROM uba.raw_event[_META_];
ERROR 1064 (HY000): Multiple entries with same key: `event_params.brand_id` varchar NULL COMMENT ""=36: event_params.brand_id and `event_params.brand_id` varchar NULL COMMENT ""=35: event_params.brand_id김태겸
10/22/2025, 8:53 AMKevin Cai
10/22/2025, 9:20 AM김태겸
10/22/2025, 9:21 AMKevin Cai
10/22/2025, 9:22 AM김태겸
10/22/2025, 9:22 AM