MaxCompute Information Schema功能详解

简介: 阿里云的技术专家为大家带来MaxCompute新功能Information Schema的详细介绍。内容包括Information Schema的简介,安装,使用场景,以及对此新功能的使用建议。

精彩视频回顾请点击:MaxCompute Information Schema 详解

以下为精彩视频内容整理:
1.Information Schema简介;
2.Information Schema安装使用;
3.Information Schema常用场景;
4.Information Schema使用建议。

一、Information Schema简介

(一)背景

MaxCompute是一种快速、完全托管的PB/EB级数据仓库解决方案。用户结构化的数据在MaxCompute中以行-列表的的形式存储,每天有千万级别的作业对这些表进行操作,同时有丰富完整的权限控制体系对这些资源访问进行约束控制。为了满足这些海量对象以及对象之间关系的管理、分析需求,MaxCompute提供了开放的元数据服务Information Schema。通过Information Schema用户可以对MaxCompute中管理的对象使用SQL进行全局分析,可以分析用户数据访问行为等,也可以利用这些数据构建自己的内部的元数据管理系统。
MaxCompute的Information Schema提供了项目元数据及使用历史数据等信息。在ANSI SQL-92的Information Schema基础上,添加了面向MaxCompute服务特有的字段及视图。包含了22张视图,其中20张是基础对象及对象关系视图,2张是历史记录数据。

(二)数据产出

产出方式周期性离线+实时在线结合的方式进行数据产出。产出流程涉及多个系统,数据是存储在ODPS系统上确保数据可靠性。通过ODPS package+view的机制提供给用户,视图是project级别的。information schema数据安全依托ODPS已有的成熟安全机制。数据覆盖面广,对象关系进行展开,使用方便简单。

图片 1.png

(三)Package+View机制
(1)什么是view

基于 SQL 语句的结果集的可视化的表,包含行和列就像一个真实的表。通过视图我们可以向用户选择性、稳定地提供数据,隐藏复杂的实现细节。

(2)什么是PACKAGE

Package是一种跨项目空间共享数据及资源的机制,我们可以把资源放到package中打包一起共享给其他project使用,相当于功能包。

(3)为什么要用PACKAGE

第一,共享简单,管理方便。不需要逐张view进行授权,后续对InformationSchema内容不需要额外授权操作。第二,安全,不需要管理庞大的用户,只需要对project进行授权。只需要授权project安装后,由project owner管理project内部谁能访问。

(四)视图信息

在上文中提到,InformationSchema包含了22张视图,其中20张是基础对象及对象关系视图,2张是历史记录数据。如下图所示,列出了这22张表,它们大概可以分为四类,其中只有历史数据表是带有分区字段ds,其他都为非分区表。
2.png

二、Information Schema安装使用

(一)安装

使用odpscmd或者DataWorks,注意需要PROJECT OWNER/SUPER ADMIN权限的执行。

3.png

如果需要project里面其他非project owner、super admin能使用information schema,可以通过ACL或者policy授权。
4.png

第一次使用时候由于字段不对,类型不对或者没有目标表权限等等会出现类似如下错误。
FAILED: No 'Read' permission for entity 'projects/information_schema/registration/functions/udf_unixtime2str': Authorization Failed [4002], You don't exist in project information_schema. Context ID:353dbeb8-9798-4a3f-8c9f-c5aa0faed66f. --->Tips: CurrentProject:lightning; Pricipal:ALIYUN$shujia_demo@aliyun-inner.com; No permission 'odps:Read' on resouce acs:odps:*:projects/information_schema/registration/functions/udf_unixtime2str

从query可能看不出来什么,有时候用户就是insert overwrite table xxx select * from information_schema.tasks_history。

Q:为什么只是访问information_schema所有表出错?
A:因为部分视图使用了udf,也有用户部分表的schema是对的,比如只有history表带有分区ds字段,其他表是没有的。

(二)使用限制

(1)Information Schema提供的是当前项目的元数据视图,不支持跨项目的元数据访问。如果需要对多个项目的元数据进行统一查询、分析,需要分别获取各个项目中的元数据并整合在一起进行跨项目元数据分析。

(2)元数据系统表目前提供视图有一定时延,对元数据时效性要求较高的应用,建议使用SDK/CLI直接获取指定对象的元数据。

(3)历史数据视图目前只提供14天数据,其他数据为最近产出副本,如果需要长期分析,需要定期导出到用户空间。

(4)视图数据不支持tunnel等拷贝,需要执行odps sql。

三、InformationSchema常用场景

在上文中提到,InformationSchema包含了22张视图,下面对其中一部分视图的常用场景分别作介绍。

(一)TABLES、PARTITIONS

5.png

6.png

(二)TASKS_HISTORY

7.png

8.png

9.png

(三)TUNNELS_HISTORY

10.png

(四)其它常用场景

11.png

12.png

四、Information Schema使用建议

(一)禁止掉SQL 1.0回退set odps.sql.planner.mode=lot;

(二)adhoc查询历史表使用时候加上分区限制避免扫描所有的分区,如果是查询昨天以及之前的数据会更快,因为历史表是历史数据和当天实时数据的聚合,历史数据会定期进行range cluster,进行过滤时候扫描量更小。

(三)定期dump时候不要将时间刚刚好设置为0点,因为产出时间是有一定的延迟,可以考虑设置晚几十分钟。

(四)多个project数据时候可以通过设置二级分区(string ds, string project),每个项目insert overwrite到自己分区,查询时候可以通过指定ds查询主账号下project数据。

(五)尽量不要用select* , 类似insert into table xxxx select * from information_schema.tables,因为视图可能会在尾部进行字段扩展。

(六)使用权限表时候查询用户权限时候注意不要遗漏“all”,对应权限*,比如查询用户drop权限时候,过滤列表除了drop还要含有all。

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
5月前
|
分布式计算 DataWorks 关系型数据库
MaxCompute支持通过DataWorks数据集成功能将其他数据源数据同步至MaxCompute
MaxCompute支持通过DataWorks数据集成功能将其他数据源数据同步至MaxCompute
37 1
|
5月前
|
jstorm 大数据 分布式数据库
大数据下的实时热点功能实现讨论(实时流的TopN)
我司内部有个基于jstorm的实时流编程框架,文档里有提到实时Topn,但是还没有实现。。。。这是一个挺常见挺重要的功能,但仔细想想实现起来确实有难度。实时流的TopN其实离大家很近,比如下图百度和微博的实时热搜榜,还有各种资讯类的实时热点,他们具体实现方式不清楚,甚至有可能是半小时离线跑出来的。今天不管他们怎么实现的,我们讨论下实时该怎么实现(基于storm)。
118 0
|
7月前
|
SQL 存储 分布式计算
深入MaxCompute,人力家借助Information Schema合理治理费用
本文将为大家带来MaxCompute与人力家客户案例深度解读。
1115 1
|
8月前
|
分布式计算 运维 大数据
MaxCompute资源管理——使用成本优化功能实现包年包月计算资源降本增效
MaxCompute提供成本优化(计算资源优化推荐)功能,可基于实际作业请求量和资源配置期望,对包年包月一级Quota类型的计算资源生成更优的资源配置方案,帮助进一步提升计算资源利用率,优化计算成本。本文我们一起通过典型场景案例来看看如何通过成本优化(计算资源优化推荐)功能提供降本增效的参考建议。
208 0
|
9月前
|
Cloud Native 大数据
阿里云最新产品手册——阿里云核心产品——云原生大数据计算服务——产品功能
阿里云最新产品手册——阿里云核心产品——云原生大数据计算服务——产品功能自制脑图
77 1
|
10月前
|
数据采集 Java 大数据
大数据数据采集的数据采集(收集/聚合)的Logstash之强大的插件功能
在大数据领域中,Logstash是一款非常流行的数据采集工具。它具有丰富的插件功能,可以完成各种不同数据来源的数据采集任务。本文将介绍Logstash的插件功能,并为大家介绍几款强大的插件。
140 1
|
11月前
|
分布式计算 资源调度 运维
【大数据运维】Hadoop开启Yarn的日志监控功能
【大数据运维】Hadoop开启Yarn的日志监控功能
【大数据运维】Hadoop开启Yarn的日志监控功能
|
SQL 消息中间件 存储
大数据生态圈常用组件(二):概括介绍、功能特性、适用场景
大数据生态圈常用组件(二):概括介绍、功能特性、适用场景
|
存储 机器学习/深度学习 分布式计算
【MaxCompute】核心功能
统一丰富的计算和存储能力MaxCompute 支持多种计算模型和丰富的 UDF。 采用列压缩存储格式,通常情况下具备 5 倍压缩能力,可以大幅节省存储成本。
【MaxCompute】核心功能
|
存储 分布式计算 Oracle
Hbase迎接电信TB级大数据洗礼之热点网站功能实践
在今年年初的时候联通王志军院长就Hadoop在电信行业的大数据应用谈了自己的经验,随着3G网络的发展中国联通目前运营着世界上最大的CDMA网络,流量运营是中国联通一个重要特点。中国联通3G套餐当中流量占比非常非常大,中国联通3G用户流量使用情况也是非常可观的。那么在3G网络功能中上网冲浪占了很大的比例,去研究用户感兴趣的热点网站成为了行为分析中很有特点的一项功能,联通就可以根据这些网站信息推出增值服务,古人云:大浪淘沙始到金啊!
196 0

相关产品

  • 云原生大数据计算服务 MaxCompute