-
表建立 参考
CREATE TABLE FLOW.SHOP_DATA_BY_SALER_CAR_V2 (
PK varchar primary key,
INFO.DATE_STR BIGINT,
INFO.STORE_ID VARCHAR,
INFO.CAR_ID VARCHAR,
INFO.SELLER_ID VARCHAR,
INFO.SHARE_PV INTEGER,
INFO.SHARE_UV INTEGER,
INFO.FLOW_PV INTEGER,
INFO.FLOW_UV INTEGER,
INFO.CALL_PV INTEGER,
INFO.CALL_UV INTEGER,
INFO.APPOINT_PV INTEGER,
INFO.APPOINT_UV INTEGER,
INFO.LAST_UPDATE_TIME DATE
) COMPRESSION='SNAPPY',DATA_BLOCK_ENCODING='DIFF';
-
模拟真实查询sql模板,sql查询时间范围为1个月的数据。
SELECT info.seller_id,
sum(info.share_pv) as sum_share_pv,
sum(info.flow_pv) as sum_flow_pv,
sum(info.call_pv) as sum_call_pv,
sum(info.appoint_pv) as sum_appoint_pv
FROM FLOW.SHOP_DATA_BY_SALER_CAR_V2
WHERE info.store_id = '%s'
AND info.date >= %d
AND info.date <= %d
GROUP BY info.seller_id
ORDER BY sum_share_pv DESC
SELECT sum(info.share_pv) as sum_share_pv,
sum(info.flow_pv) as sum_flow_pv,
sum(info.call_pv) as sum_call_pv,
sum(info.appoint_pv) as sum_appoint_pv
FROM FLOW.SHOP_DATA_BY_SALER_CAR_V2
WHERE info.store_id = '%s'
AND info.date >= %d
AND info.date <= %d
SELECT sum(info.share_pv) as sum_share_pv,
sum(info.flow_pv) as sum_flow_pv,
sum(info.call_pv) as sum_call_pv,
sum(info.appoint_pv) as sum_appoint_pv
FROM FLOW.SHOP_DATA_BY_SALER_CAR_V2
WHERE info.store_id = '%s'
AND info.date >= %d
AND info.date <= %d
AND info.seller_id = '%s'
SELECT info.seller_id,
sum(info.share_pv) sum_share_pv,
sum(info.flow_pv) sum_flow_pv
FROM FLOW.SHOP_DATA_BY_SALER_CAR_V2
WHERE info.car_id = '%s'
AND info.date >= %d
AND info.date <= %d
AND info.share_pv <> 0
ORDER BY info.seller_id
-
针对sql模板场景,建立索引表,索引类为覆盖索引 Secondary Indexing
CREATE INDEX SHOP_DATA_BY_SALER_CAR_V2_INDEX
ON FLOW.SHOP_DATA_BY_SALER_CAR_V2 (INFO.STORE_ID, INFO.DATE_STR)
INCLUDE (INFO.SELLER_ID, INFO.CAR_ID, INFO.SHARE_PV, INFO.FLOW_PV, INFO.CALL_PV, INFO.APPOINT_PV)
COMPRESSION='SNAPPY',DATA_BLOCK_ENCODING='DIFF'
CREATE INDEX SHOP_DATA_BY_SALER_CAR_V2_INDEX1
ON FLOW.SHOP_DATA_BY_SALER_CAR_V2 (INFO.CAR_ID, INFO.DATE_STR, INFO.SHARE_PV)
INCLUDE (INFO.SELLER_ID, INFO.FLOW_PV, INFO.CALL_PV, INFO.APPOINT_PV)
COMPRESSION='SNAPPY',DATA_BLOCK_ENCODING='DIFF'
数据样例的选择:sql查询时间范围均为1个月,查询条件由挑选出这1个月中按车商、销售、车辆各个分组总条数在前300、300、300的数据按照模板随机组合查询。保证sql查询都能命中数据,同时也排除每次都是量很大的数据。数据样例见最后。测试表的数据量级在亿行以上。