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

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*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 
目录
相关文章
|
2月前
|
消息中间件 测试技术
项目环境测试问题之规范执行器的异常处理如何解决
项目环境测试问题之规范执行器的异常处理如何解决
|
17天前
|
JavaScript 测试技术 Windows
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
本文介绍了如何使用vue-cli和webpack为Vue项目配置不同的生产和测试环境,包括修改`package.json`脚本、使用`cross-env`处理环境变量、创建不同环境的`.env`文件,并在`webpack.prod.conf.js`中使用`DefinePlugin`来应用这些环境变量。
35 2
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
|
4天前
|
前端开发 测试技术 程序员
在工作中会涉及到的几个环境(概念补充) 办公环境、开发环境、测试环境、线下环境、线上环境/生产环境都是什么,他们之间的关系?
本文解释了在职场中可能会接触到的不同环境,包括办公环境、开发环境、测试环境和生产环境(线上环境),以及它们之间的关系和重要性。
17 1
|
5月前
|
敏捷开发 人工智能 数据管理
探索自动化测试在持续集成环境中的应用与挑战
【5月更文挑战第27天】随着敏捷开发和持续集成(CI)的普及,自动化测试已成为确保软件质量和加速交付的关键工具。本文将深入探讨自动化测试在持续集成环境中的实施策略、面临的挑战以及优化实践。通过分析自动化测试框架的选择、脚本维护、数据管理等关键要素,旨在为读者提供一种系统化的视角,以理解和改进其自动化测试流程。同时,文章还将分享一些前沿的测试自动化趋势,包括人工智能(AI)在测试用例生成和执行中的潜在应用。
|
18天前
|
Web App开发 Linux Python
linux上安装selenium环境及测试
该文章提供了在Linux CentOS上安装Selenium环境、Chrome浏览器及Chromedriver的详细步骤,并演示了如何以无头模式进行测试。
53 0
|
25天前
|
存储 监控 安全
在自动化测试环境中,如何确保测试数据的安全性和隐私性
在自动化测试环境中,如何确保测试数据的安全性和隐私性
|
2月前
|
Cloud Native 数据处理
项目环境测试问题之当异步任务在运行过程中抛出非预期的异常会导致后果如何解决
项目环境测试问题之当异步任务在运行过程中抛出非预期的异常会导致后果如何解决
|
2月前
|
资源调度 Java 调度
项目环境测试问题之Schedulerx2.0通过分布式分片任务解决单机计算瓶颈如何解决
项目环境测试问题之Schedulerx2.0通过分布式分片任务解决单机计算瓶颈如何解决
项目环境测试问题之Schedulerx2.0通过分布式分片任务解决单机计算瓶颈如何解决
|
2月前
|
Cloud Native Java 调度
项目环境测试问题之线程同步器会造成执行完任务的worker等待的情况如何解决
项目环境测试问题之线程同步器会造成执行完任务的worker等待的情况如何解决
|
2月前
|
调度
项目环境测试问题之单机调度会导致项目环境大部分的机器被闲置如何解决
项目环境测试问题之单机调度会导致项目环境大部分的机器被闲置如何解决