赞
踩
活动简介:5 分钟快速使用 Hologres 实时湖仓能力,加速分析数据湖 OSS 上 Hudi、Delta、Paimon、ORC 等格式数据,赢取精美礼品
活动入口:
https://developer.aliyun.com/topic/hologres/dlf
或点击文末【阅读全文】参与挑战
活动时间
2024 年 1 月 4 日-2024 年 1 月 30
活动奖品
●挑战奖:小米充电宝 15 个,非教程代码执行 SQL,完成运行速度对比
●一等奖:LAMY 钢笔 1 个,作品点赞数位列第 1 名,且点赞数≥20 个
●二等奖:小米背包 20 个,作品点赞数位列第 2-21 名,且点赞数≥10 个
●参与奖:社区积分,每位参赛者可获得社区 100 积分
本文以上海地域为例开通 OSS、DLF 和 Hologres 服务。
--创建外部服务器,以上海reigon为例
CREATE SERVER IF NOT EXISTS dlf_server FOREIGN data wrapper dlf_fdw options (
dlf_region 'cn-shanghai',
dlf_endpoint 'dlf-share.cn-shanghai.aliyuncs.com',
oss_endpoint 'oss-cn-shanghai-internal.aliyuncs.com');
Hologres 外部表保存与 OSS 数据湖数据的映射关系,数据在 OSS 数据湖中存储,不占用 Hologres 存储空间,查询性能一般在秒级至分钟级。
IMPORT FOREIGN SCHEMA mydatabase LIMIT TO ----本文以mydatabase为例,创建时需替换为您在DLF元数据管理中的自定义的数据库名称
(
nation_orc,
supplier_orc,
partsupp_orc
)
FROM SERVER dlf_server INTO public options (if_table_exist 'update');
--TPCH Q11查询语句 select ps_partkey, sum(ps_supplycost * ps_availqty) as value from partsupp_orc, supplier_orc, nation_orc where ps_suppkey = s_suppkey and s_nationkey = n_nationkey and RTRIM(n_name) = 'EGYPT' group by ps_partkey having sum(ps_supplycost * ps_availqty) > ( select sum(ps_supplycost * ps_availqty) * 0.000001 from partsupp_orc, supplier_orc, nation_orc where ps_suppkey = s_suppkey and s_nationkey = n_nationkey and RTRIM(n_name) = 'EGYPT' ) order by value desc;
Hologres 内部表查询是将 OSS 数据湖数据导入至 Hologres 中,数据将在Hologres 中存储,可获得更好的查询性能和更高的数据处理能力。关于存储费用详情介绍,请参见计费概述。
-- 创建nation表 DROP TABLE IF EXISTS NATION; BEGIN; CREATE TABLE NATION ( N_NATIONKEY int NOT NULL PRIMARY KEY, N_NAME text NOT NULL, N_REGIONKEY int NOT NULL, N_COMMENT text NOT NULL ); CALL set_table_property ('NATION', 'distribution_key', 'N_NATIONKEY'); CALL set_table_property ('NATION', 'bitmap_columns', ''); CALL set_table_property ('NATION', 'dictionary_encoding_columns', ''); COMMIT; -- 创建supplier表 DROP TABLE IF EXISTS SUPPLIER; BEGIN; CREATE TABLE SUPPLIER ( S_SUPPKEY int NOT NULL PRIMARY KEY, S_NAME text NOT NULL, S_ADDRESS text NOT NULL, S_NATIONKEY int NOT NULL, S_PHONE text NOT NULL, S_ACCTBAL DECIMAL(15, 2) NOT NULL, S_COMMENT text NOT NULL ); CALL set_table_property ('SUPPLIER', 'distribution_key', 'S_SUPPKEY'); CALL set_table_property ('SUPPLIER', 'bitmap_columns', 'S_NATIONKEY'); CALL set_table_property ('SUPPLIER', 'dictionary_encoding_columns', ''); COMMIT; -- 创建partsupp表 DROP TABLE IF EXISTS PARTSUPP; BEGIN; CREATE TABLE PARTSUPP ( PS_PARTKEY int NOT NULL, PS_SUPPKEY int NOT NULL, PS_AVAILQTY int NOT NULL, PS_SUPPLYCOST DECIMAL(15, 2) NOT NULL, PS_COMMENT text NOT NULL, PRIMARY KEY (PS_PARTKEY, PS_SUPPKEY) ); CALL set_table_property ('PARTSUPP', 'distribution_key', 'PS_PARTKEY'); CALL set_table_property ('PARTSUPP', 'bitmap_columns', 'ps_availqty'); CALL set_table_property ('PARTSUPP', 'dictionary_encoding_columns', ''); COMMIT;
---将Hologres外表数据导入内表
INSERT INTO nation SELECT * FROM nation_orc;
INSERT INTO supplier SELECT * FROM supplier_orc;
INSERT INTO partsupp SELECT * FROM partsupp_orc;
--TPCH Q11查询语句 select ps_partkey, sum(ps_supplycost * ps_availqty) as value from partsupp, supplier, nation where ps_suppkey = s_suppkey and s_nationkey = n_nationkey and RTRIM(n_name) = 'EGYPT' group by ps_partkey having sum(ps_supplycost * ps_availqty) > ( select sum(ps_supplycost * ps_availqty) * 0.000001 from partsupp, supplier, nation where ps_suppkey = s_suppkey and s_nationkey = n_nationkey and RTRIM(n_name) = 'EGYPT' ) order by value desc;
一等奖、二等奖、参与奖:
将内表查询或外表查询的运行日志截图晒出。
外表查询速度:
内表查询速度:
分享作品参与点赞排行
●请使用提交作品账号开通产品并参与挑战,后台会校验产品开通及SQL运行情况。
●请上传原创数据表及截图,若为抄袭则取消资格;若发现有刷赞行为,立即撤销作品,取消参赛资格。
挑战奖:
基于已有的外表和内表,分别运行2条同样的自定义SQL,附上外表SQL语句、运行日志、运行结果、内表SQL语句、运行日志、运行结果,6个部分合并1张截图上传。
●SQL需要涉及多表查询,单表SQL不支持参与挑战
●获奖名单按照作品提交时间排序
●为保证SQL原创性,同样SQL只取第一位
●挑战奖优先,不与一等奖、二等奖重复获取
挑战奖作品示例:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。