5分钟使用Hologres实时湖仓加速分析挑战赛来袭

活动简介

5分钟快速使用Hologres实时湖仓能力,加速分析数据湖OSS上Hudi、Delta、Paimon、ORC等格式数据,赢取精美礼品

活动入口:Hologres实时湖仓分析挑战赛-阿里云开发者社区 或点击文末【阅读全文】参与挑战

活动时间

2024年1月4日-2024年1月30日

活动奖品

  • 挑战奖:小米充电宝15个,非教程代码执行SQL,完成运行速度对比
  • 一等奖:LAMY钢笔1个,作品点赞数位列第1名,且点赞数≥20个
  • 二等奖:小米背包20个,作品点赞数位列第2-21名,且点赞数≥10个
  • 参与奖:社区积分,每位参赛者可获得社区100积分

准备工作

本文以上海地域为例开通OSS、DLF和Hologres服务。

  1. 开通OSS服务并准备测试数据。
    1. 打开OSS开通页面,按照界面指引完成开通操作。说明
      • 若您是新用户,可以免费试用OSS。
    1. 登录OSS管理控制台,创建存储空间(Bucket)。具体操作,请参见控制台快速入门。

    1. 上传tpch_10g_orc_3.zip测试数据至Bucket目录。
  • 测试数据文件上传后,若存在.DS_Store等文件需手动删除。
  • 考虑到下载速度,这里仅包含本文需要的nation_orc、supplier_orc、partsupp_orc数据表。

  1. 开通DLF服务并导入OSS测试数据。
    1. 访问开通DLF页面,您也可以单击免费开通,免费试用DLF产品。
    2. 登录数据湖管理控制台,在元数据管理页面,单击新建数据库。具体操作,请参见创建元数据库。
      本文以创建mydatabase数据库为例。
    3. 元数据抽取页面,创建元数据抽取任务,将OSS测试数据导入。具体操作,请参见元数据抽取。
      抽取完成后,您可以在元数据管理页面的数据表页签查看。

参数配置

字段描述

抽取任务名称

元数据抽取任务的名称,输入为中英文数字和(_)。

OSS路径

指定待抽取数据的OSS目录。

解析格式

支持json、csv、parquet、orc、hudi、delta、avro中某一类格式进行抽取,或采用自动识别模式会对数据文件自动解析。

目标数据库

抽取获取的元数据存储的元数据库位置。

  1. 开通Hologres服务并购买Hologres实例。具体操作,请参见购买Hologres。
    若您是新用户可以申请免费试用Hologres,为保证使用体验,免费试用请选择32C配置,若您没有免费试用规格,可以购买Hologres按量付费

步骤一:配置环境

  1. 在Hologres实例中开启数据湖加速功能。
    访问Hologres实例列表,单击目标实例操作列中的数据湖加速并确认,开启数据湖加速功能后,Hologres实例将重启。

  2. 登录Hologres实例,创建数据库。具体操作,请参见连接HoloWeb。

  1. (可选)创建Extension。本文以dlf_fdw为例。
    说明
    Hologres V2.1版本已默认创建,您无需进行此操作。您可以访问Hologres实例列表,在实例详情页面确认您的实例版本。
CREATE EXTENSION IF NOT EXISTS dlf_fdw;

说明
使用Superuser在SQL编辑器-HoloWeb中执行上述语句创建Extension,该操作针对整个DB生效,一个DB只需执行一次。关于Hologres账号授权详情,请参见授权服务账号。

  1. 在SQL编辑器-HoloWeb,执行以下语句,创建dlf_server外部服务器并配置Endpoint信息,确保Hologres、DLF和OSS之间的正常访问。关于更多的创建方式和相关参数介绍详情,请参见创建外部服务器。
--创建外部服务器,以上海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数据湖

Hologres外部表保存与OSS数据湖数据的映射关系,数据在OSS数据湖中存储,不占用Hologres存储空间,查询性能一般在秒级至分钟级。

  1. 创建Hologres外部表,并将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');
  1. 数据查询。
    创建外部表成功后,可以直接查询外部表读取OSS中的数据。示例语句如下。
--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内部表查询是将OSS数据湖数据导入至Hologres中,数据将在Hologres中存储,可获得更好的查询性能和更高的数据处理能力。关于存储费用详情介绍,请参见计费概述。

  1. 在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;
  1. 同步Hologres外部表数据至Hologres内部表。
---将Hologres外表数据导入内表
INSERT INTO nation SELECT * FROM nation_orc;
INSERT INTO supplier SELECT * FROM supplier_orc;
INSERT INTO partsupp SELECT * FROM partsupp_orc;
  1. 查询Hologres内部表数据。
--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只取第一位
  • 挑战奖优先,不与一等奖、二等奖重复获取

挑战奖作品示例:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/305924.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

爬取国家法律法规数据库法律条文

代码展现: import requests import os filename 法律条文\\ if not os.path.exists(filename):os.mkdir(filename) url https://flk.npc.gov.cn/api/? data {type: flfg,searchType: title;vague,sortTr: f_bbrq_s;desc,gbrqStart: ,gbrqEnd: ,sxrqStart: ,sx…

【C语言】TCP测速程序

一、服务端 下面是一个用 C 语言编写的测试 TCP 传输速度的基本程序示例。 这只是一个简单示例&#xff0c;没有做详细的错误检查和边缘情况处理。在实际应用中&#xff0c;可能需要增加更多的功能和完善的异常处理机制。 TCP 服务器 (server.c): #include <stdio.h> #…

【c++】vector模拟

> 作者简介&#xff1a;დ旧言~&#xff0c;目前大二&#xff0c;现在学习Java&#xff0c;c&#xff0c;c&#xff0c;Python等 > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;能手撕vector模拟 > 毒鸡汤&#xff1a;在等待…

动态规划(分割等和子集)

416. 分割等和子集 题目难易&#xff1a;中等 给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: 输入: [1, 5, 11, 5] 输出: true 解释: 数…

STM32入门教程-2023版【3-3】gpio输入

关注 星标公众号 不错过精彩内容 大家好&#xff0c;我是硬核王同学&#xff0c;最近在做免费的嵌入式知识分享&#xff0c;帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作! 上两小节我们已经把GPIO的结构和8种输入输出模式都讲完了&#xff0c;到这里还不懂的可以回…

浅析内存一致性:内存屏障

文章目录 概述内存乱序访问Store Buffer和Invalidate QueueStore BufferStore ForwardingStore Buffer与内存屏障 Invalidate QueueInvalidate Queue与内存屏障 内存屏障分类编译器屏障CPU内存屏障 相关参考 概述 内存屏障&#xff0c;是一类同步屏障指令&#xff0c;是CPU或编…

Java中的输入输出处理(一)

文件 文件&#xff1a;文件是放在一起的数据的集合。比如1.TXT。 存储地方&#xff1a;文件一般存储在硬盘&#xff0c;CD里比如D盘 如何访问文件属性&#xff1a;我们可以通过java.io.File类对其处理 File类 常用方法&#xff1a; 方法名称说明boolean exists()判断文件或目…

处理机调度与死锁

目录 进程调度算法先来先服务调度算法FCFS最短作业优先调度算法SJF最高优先级调度算法***HPF***高响应比优先调度算法 ***HRRN***时间片轮转调度算法***RR***多级队列调度算法MFQ 进程调度算法 进程调度算法也称为CPU调度算法 当 CPU 空闲时&#xff0c;操作系统就选择内存中…

一天一个设计模式---工厂方法

概念 工厂模式是一种创建型设计模式&#xff0c;其主要目标是提供一个统一的接口来创建对象&#xff0c;而不必指定其具体类。工厂模式将对象的实例化过程抽象出来&#xff0c;使得客户端代码不需要知道实际创建的具体类&#xff0c;只需通过工厂接口或方法来获取所需的对象。…

uniapp中uview组件库丰富的Table 表格的使用方法

目录 #平台差异说明 #基本使用 #兼容性 #API #Table Props #Td Props #Th Props 表格组件一般用于展示大量结构化数据的场景 #平台差异说明 AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序√√√√√√√ #基本使用 本组件标签类似HTML的table表格&#…

模型评估:评估指标的局限性

“没有测量&#xff0c;就没有科学。”这是科学家门捷列夫的名言。在计算机科学特别是机器学习领域中&#xff0c;对模型的评估同样至关重要。只有选择与问题相匹配的评估方法&#xff0c;才能快速地发现模型选择或训练过程中出现的问题&#xff0c;迭代地对模型进行优化。模型…

猫头虎分享:Linux 如何安装最新版的Docker和Docker-Compose 教程 ‍

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通Golang》…

教你如何将本地虚拟机变成服务器,供其它电脑访问

场景&#xff1a;最近在做数据仓库的作业&#xff0c;需要团队协作&#xff0c;买不起阿里云服务器&#xff0c;所以想到能不能将我本地机上的虚拟机变成服务器&#xff0c;供其它同学的电脑访问。在虚拟机上安装hadoop和hive&#xff0c;然后同学机子上安装kettle进行连接。最…

书生大模型全链路开源体系

书生浦语大模型全链路开源体系开源了哪些东西 数据书生万卷&#xff1a;一个2TB的涵盖多种模态与任务的数据集预训练InternLM-Train&#xff1a;微调XTuner&#xff1a;可供你低成本微调模型的工具箱部署LMDeploy&#xff1a;一个服务端场景下、transformer 结构 LLM 部署工具…

【模拟IC学习笔记】Cascode OTA 设计

辅助定理 增益Gm*输出阻抗 输出短路求Gm 输入置0求输出阻抗 求源极负反馈的增益 随着Vin的增加&#xff0c;Id也在增加&#xff0c;Rs上压降增加&#xff0c;所以&#xff0c;Vin的一部分电压体现在Rs上&#xff0c;而不是全部作为Vgs&#xff0c;因此导致Id变得平滑。 Rs足…

Python书籍推荐,建议收藏

学习Python的书籍可太多了&#xff0c;从入门到放弃&#xff0c;应有尽有啊 入门书籍 根据豆瓣评分的高低&#xff0c;这里介绍了一些经典入门书籍&#xff0c;大家根据自身情况选择尝试 《Python编程&#xff1a;从入门到实践&#xff08;第二版&#xff09;》 非常经典且非…

搜维尔科技:第九届元宇宙数字人设计大赛作品规范解读!

作品提交 参赛小组需要将作品上传至百度网盘&#xff0c;并将分享链接发送至frankaxis3d.cn邮箱。邮寄格式如下&#xff1a; 邮件标题&#xff1a;作品名称元宇宙数字人设计大赛作品 邮件内容标明&#xff1a;学校名称、院系名称、作品名称、作者名称、联系电话及指导老师名…

vue中鼠标拖动触发滚动条的移动

前言 在做后端管理系统中&#xff0c;像弹窗或大的表单时&#xff0c;经常会有滚动条的出现&#xff0c;但有些时候如流程、图片等操作时&#xff0c;仅仅使用鼠标拖动滚动条操作不太方便&#xff0c;如果使用鼠标拖拽图片或容器来触发滚动条的移动就比较方便了 功能设计 如…

【leetcode】力扣算法之删除链表中倒数第n个节点【中等难度】

删除链表中倒数第n个节点 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 用例 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5] 输入&#xff1a;head [1], n 1 输出&#xff1a;[] 输入&#xff1a;head …

蓝牙模块在电动汽车充电设施中的创新应用

随着电动汽车的普及&#xff0c;充电设施的便捷性和智能化成为关键的发展方向。蓝牙技术作为一种无线通信技术&#xff0c;在电动汽车充电设施中发挥着越来越重要的作用。本文将深入探讨蓝牙模块在电动汽车充电设施中的创新应用&#xff0c;以提高充电体验、提升管理效率&#…