如何创建2024云栖Openlake测试项目和配置环境

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 2024年云栖大会,MaxCompute 多项重磅产品新功能邀测发布,新特性包括 支持OpenLake的湖仓一体2.0、Object Table支持SQL或MaxFrame处理非结构化数据、Delta Table增量表格式、基于增量物化视图的增量计算、MCQA2.0 SQL引擎查询加速等。其相关特性将在中国区 公共云 北京、上海、杭州、深圳Region 上线开放试用。本文以最佳实践的方式,帮助您创建MaxCompute和周边产品 在Openlake解决方案demo中需要准备的实例、项目和开发环境,并完成配置。欢迎您玩转云栖邀测demo,体验新功能。

简要说明

2024年云栖大会,MaxCompute 多项重磅产品新功能邀测发布,新特性包括 支持OpenLake的湖仓一体2.0、Object Table支持SQL或MaxFrame处理非结构化数据、Delta Table增量表格式、基于增量物化视图的增量计算、MCQA2.0 SQL引擎查询加速等。其相关特性将在中国区 公共云 北京、上海、杭州、深圳Region 上线开放试用。邀测注册入口
本文以最佳实践的方式,帮助您创建MaxCompute和周边产品 在Openlake解决方案demo中需要准备的实例、项目和开发环境,并完成配置。欢迎您玩转云栖邀测demo,体验新功能。
本文以深圳为例。

环境准备

创建DLF2.0 Catalog

登录 https://dlf-next.console.aliyun.com/cn-shenzhen/metadata
创建dlf2.0 catalog
image.png

创建完成
image.png

创建DW工作空间

登录 https://dataworks.console.aliyun.com/workspace/create?step=0&regionId=cn-shenzhen&fromPath=%2Fworkspace%2Flist
创建工作空间时注意打开“参加数据开发(DataStudio)(新版)公测”开关
image.png

完成后要求绑定MC计算资源

创建并绑定MC 外部项目,映射DLF2.0 Catalog

点击新建项目
image.png

选择外部项目,选择Openlake(DLF2)类型
新建外部数据源,并使用ExecuteWithUserAuth认证方式
外部数据源的 DLF EndPoint一定填经典网络地址,格式举例:dlfnext-share.cn-shenzhen.aliyuncs.com
映射刚创建的dlf catalog
image.png

外部项目创建完成
登录mc管控台查看 https://maxcompute.console.aliyun.com/cn-shenzhen/project-list
image.png

DW绑定MC计算资源
image.png

创建并绑定MC 内部项目

点击DW项目空间
image.png
在计算资源分页中点击绑定计算资源
image.png

创建云栖邀测内部项目

注意使用MC云栖邀测功能,需要从邀测入口进行region粒度的注册,注册入口
注册后,该用户可以在注册region的mc管控台创建项目,选择云栖邀测项目
image.png
或者在dw绑定计算资源 - 新建内部项目,选择云栖邀测项目
image.png

创建云栖邀测项目后在DW绑定
image.png

确认完成绑定
image.png

创建Holo实例和Database

Holo实例版本需要3.0.6或以上
image.png

新建数据库
image.png

注意开启数据湖加速
image.png

等待处理完成后,重启holo实例即可使用。

DW工作空间绑定Holo实例和Database

绑定holo的内部数据库
image.png

绑定数据目录
image.png

在Holo中建表
image.png

写入一条数据
image.png

创建MC External Schema映射Holo Database和Schema

登录mc管控台 租户管理 外部数据源 https://maxcompute.console.aliyun.com/cn-shenzhen/tenant-manage/external-data-source
创建映射Holo database的foreign server
名称 :openlake_demo_es2Holo_sz_fs
holo db:openlake_demo_sz_db
ramrole:acs:ram::uid:role/aliyunodpsHolorole
image.png

新增用户和用户授权,参考 https://help.aliyun.com/zh/maxcompute/user-guide/Hologres-foreign-tables?spm=a2c4g.11186623.0.0.ddd9324b8FfMwM#section-dcq-zfi-6no
image.png
image.png

创建完成
image.png

MC SQL创建外部Schema,映射Holo database.schema

CREATE EXTERNAL SCHEMA lakehouse_yunqi_demo_sz.openlake_demo_es2Holo
with  openlake_demo_es2Holo_sz_fs
ON 'public' ;

image.png

查看外部Schema属性
image.png

通过外部Schema查询Holo数据
image.png

创建Holo External Database映射DLF2.0 Catalog和MC Project

在sql编辑器或notebook中,执行Hologres sql
创建external database映射dlf catalog
其中dlf catalog是dlf catalog的id
image.png

DROP EXTERNAL DATABASE IF EXISTS openlake_demo_Holo;
COMMIT;
CREATE EXTERNAL DATABASE openlake_demo_Holo
WITH 
    metastore_type 'dlf-paimon'
    dlf_region 'cn-shenzhen' 
    dlf_endpoint 'dlfnext-pre.cn-shenzhen.aliyuncs.com' 
    dlf_catalog 'clg-paimon-90xxxxxxxxxxxxxxx84'
;
COMMIT;

创建external schema,即在dlf Catalog 中创建 dlf database

DROP EXTERNAL SCHEMA IF EXISTS openlake_demo_Holo.github_events;
CREATE EXTERNAL SCHEMA IF NOT EXISTS openlake_demo_Holo.github_events;
COMMIT;

创建paimon table 用于存放相关数据

DROP EXTERNAL TABLE IF EXISTS openlake_demo_Holo.github_events.ods_github_events_raw;
CREATE EXTERNAL TABLE openlake_demo_Holo.github_events.ods_github_events_raw
(
    col text,
    ds text
)
WITH (
  "changelog-producer"='none',
  "bucket"=6,
  "bucket-key"='ds'
);

创建external database映射mc project

DROP EXTERNAL DATABASE BIGDATA_PUBLIC_DATASET;
CREATE EXTERNAL DATABASE BIGDATA_PUBLIC_DATASET 
WITH 
  metastore_type 'maxcompute' 
  mc_project 'BIGDATA_PUBLIC_DATASET' ;
COMMIT;

从MC公共数据集向湖表写入数据

INSERT INTO openlake_demo_Holo.github_events.ods_github_events_raw
SELECT
    col,
    ds
FROM
    BIGDATA_PUBLIC_DATASET.github_events.ods_github_events_odps_string
WHERE
    ds = to_char(CURRENT_DATE, 'YYYY-MM-DD');

数据目录挂载MC Project

选择数据目录,点击添加项目,选择另一个外部项目或内部项目,点击批量添加
image.png

已经绑定的项目已经自动挂载
可以看到内部项目和外部项目的schema和表
holo的挂载方法相同

image.png

准备Notebook个人开发环境

使用Notebook需要购买通用资源组
image.png

启动后注意检查是否和工作空间绑定
image.png

完成个人开发环境实例创建
image.png

注意配置专有网络,要和holo在同一个vpc vsw和安全组下
image.png

完成创建后即可以使用。
image.png

注意notebook个人目录如果提示vsix扩展,请点击右键安装
image.png

创建OSS Bucket

登录 https://oss.console.aliyun.com/bucket
新建bucket object-table-bucket
image.png

新建目录
image.png

上传文件
image.png
请上传txt、pds、wav等非结构化数据

demo中解析的pdf样例demoday.pdf,以及其他非结构化文件样例 可以下载unstruct data.zip,解压并上传到object table映射的oss bucket 和路径ot_openlake 中

创建MC Object Table

在dw 新版数据开发新建目录和sql
image.png
image.png
image.png

创建object table ddl

--MaxCompute SQL

set odps.namespace.schema = true;
create object table lakehouse_yunqi_demo_sz.default.ot_openlake_demo 
with serdeproperties (
 'odps.properties.rolearn'='acs:ram::1xxxxxxxxxx9:role/aliyunodpsdefaultrole')
location 'oss://oss-cn-shenzhen-internal.aliyuncs.com/object-table-bucket/ot_openlake/';

上传MC资源并创建非结构化数据处理UDF

下载云栖版本cmd
http://odps.alibaba-inc.com/official_downloads/odpscmd/0.46.8/
下载资源
pdf_tools_cp37.tar.gz

binary_pdf2text.py

binary_pdf2png.py

放在odps_clt_release_64\bin目录下

use lakehouse_yunqi_demo_sz;

add py binary_pdf2png.py -f;
add py binary_pdf2text.py -f;
add archive pdf_tools_cp37.tar.gz -f;

create function pdf2png as binary_pdf2png.ExtractPDFPages using 'binary_pdf2png.py, pdf_tools_cp37.tar.gz' -f;
create function pdf2text as binary_pdf2text.ExtractPDFText using 'binary_pdf2text.py, pdf_tools_cp37.tar.gz' -f;

上传完成后可在数据目录中查看
image.png

开发

基于Openlake和Object table,MC使用SQL进行非结构化数据处理

MaxCompute将Openlake上的一个存了各种类型非结构化数据文件的OSS bucket path映射为一张Object Table,抽取非结构化数据元信息后缓存在Object Table的Metadata中。
使用MaxCompute SQL分析Object Table中各类文件的数量,按照文件类型大小排序,单独过滤某种类型的文件,并通过内置文件下载函数,读取非结构化数据内容转为MD5。
最后使用udf提取文本的非结构化数据处理函数,将结尾为demoday.pdf文件,提取内容到文本字段,提取信息与原始文件内容相同。

基于OpenLake和Object table的非结构化数据处理

湖仓融合:Maxcompute与Hologres基于OpenLake的湖上解决方案

基于github events数据,模拟了Hologres在Openlake湖上建Paimon表,将数据加载入ODS原始表;
使用MaxCompute MaxFrame对原始数据进行探查,看到内容是json格式的原始文件,不便于分析;
并使用MaxCompute SQL 读取原始Paimon表,将Json格式的github events记录,转化成结构化宽表,并写回Openlake的DWD表中。
Hologres基于DWD表和MaxCompute数仓中的维度表,关联生成ADS层的Dynamic Table。
对Dynamic Table进行多维度OLAP分析,统计了最近时期的github项目热度、人员活跃度、最近最频繁的操作情况,并使用漏斗函数进行行为转化分析。

基于OpenLake的湖仓批处理和分析方案

创建

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
27天前
|
存储 Ubuntu 安全
ROS2教程02 ROS2的安装、配置和测试
本文是关于ROS2(机器人操作系统2)的安装、配置和测试的教程。内容包括使用一键安装脚本快速安装ROS2 Humble版,手动安装步骤,设置语言环境、添加软件源、更新软件包、安装ROS2桌面版和开发工具,配置ROS2环境,创建工作空间,配置ROS2领域以避免网络冲突,以及如何删除ROS2。此外,还包括了测试ROS2是否安装成功的两个案例:基本的Topic通信测试和使用Turtlesim演示程序。适用于Ubuntu 22.04操作系统。
56 1
ROS2教程02 ROS2的安装、配置和测试
|
21天前
|
jenkins 测试技术 持续交付
解锁.NET项目高效秘籍:从理论迷雾到实践巅峰,持续集成与自动化测试如何悄然改变游戏规则?
【8月更文挑战第28天】在软件开发领域,持续集成(CI)与自动化测试已成为提升效率和质量的关键工具。尤其在.NET项目中,二者的结合能显著提高开发速度并保证软件稳定性。本文将从理论到实践,详细介绍CI与自动化测试的重要性,并以ASP.NET Core Web API项目为例,演示如何使用Jenkins和NUnit实现自动化构建与测试。每次代码提交后,Jenkins自动触发构建流程,通过编译和运行NUnit测试确保代码质量。这种方式不仅节省了时间,还能快速发现并解决问题,推动.NET项目开发迈向更高水平。
34 8
|
27天前
|
存储 SQL 测试技术
单元测试问题之JCode5插件在项目中的实际应用效果如何解决
单元测试问题之JCode5插件在项目中的实际应用效果如何解决
36 3
|
27天前
|
Java 测试技术 Maven
单元测试问题之在Maven项目中引入JUnit 5和Mockito的依赖如何解决
单元测试问题之在Maven项目中引入JUnit 5和Mockito的依赖如何解决
88 1
|
17天前
|
持续交付 C# 敏捷开发
“敏捷之道:揭秘WPF项目中的快速迭代与持续交付——从需求管理到自动化测试,打造高效开发流程的全方位指南”
【8月更文挑战第31天】敏捷开发是一种注重快速迭代和持续交付的软件开发方法,通过短周期开发提高产品质量并快速响应变化。本文通过问题解答形式,探讨在Windows Presentation Foundation(WPF)项目中应用敏捷开发的最佳实践,涵盖需求管理、版本控制、自动化测试及持续集成等方面,并通过具体示例代码展示其实施过程,帮助团队提升代码质量和开发效率。
32 0
|
17天前
|
Java Spring UED
Spring框架的异常处理秘籍:打造不败之身的应用!
【8月更文挑战第31天】在软件开发中,异常处理对应用的稳定性和健壮性至关重要。Spring框架提供了一套完善的异常处理机制,包括使用`@ExceptionHandler`注解和配置`@ControllerAdvice`。本文将详细介绍这两种方式,并通过示例代码展示其具体应用。`@ExceptionHandler`可用于控制器类中的方法,处理特定异常;而`@ControllerAdvice`则允许定义全局异常处理器,捕获多个控制器中的异常。
33 0
|
26天前
|
缓存 NoSQL 网络协议
【Azure Redis 缓存 Azure Cache For Redis】在创建高级层Redis(P1)集成虚拟网络(VNET)后,如何测试VNET中资源如何成功访问及配置白名单的效果
【Azure Redis 缓存 Azure Cache For Redis】在创建高级层Redis(P1)集成虚拟网络(VNET)后,如何测试VNET中资源如何成功访问及配置白名单的效果
|
1月前
|
前端开发 Java 测试技术
单元测试问题之在Spring MVC项目中添加JUnit的Maven依赖,如何操作
单元测试问题之在Spring MVC项目中添加JUnit的Maven依赖,如何操作
|
1月前
|
Cloud Native Java 调度
项目环境测试问题之线程同步器会造成执行完任务的worker等待的情况如何解决
项目环境测试问题之线程同步器会造成执行完任务的worker等待的情况如何解决
|
5天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
30 7
Jmeter实现WebSocket协议的接口测试方法

热门文章

最新文章