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。

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
8月前
|
存储 分布式计算 大数据
MaxCompute聚簇优化推荐功能发布,单日节省2PB Shuffle、7000+CU!
MaxCompute全新推出了聚簇优化推荐功能。该功能基于 31 天历史运行数据,每日自动输出全局最优 Hash Cluster Key,对于10 GB以上的大型Shuffle场景,这一功能将直接带来显著的成本优化。
337 3
|
8月前
|
机器学习/深度学习 算法 Java
Java 大视界 -- Java 大数据机器学习模型在生物信息学基因功能预测中的优化与应用(223)
本文探讨了Java大数据与机器学习模型在生物信息学中基因功能预测的优化与应用。通过高效的数据处理能力和智能算法,提升基因功能预测的准确性与效率,助力医学与农业发展。
|
SQL 人工智能 大数据
【4月重点功能发布】阿里云大数据+ AI 一体化平台
【4月重点功能发布】阿里云大数据+ AI 一体化平台
306 0
|
SQL 人工智能 分布式计算
【3月重点功能发布】阿里云大数据+ AI 一体化平台
【3月重点功能发布】阿里云大数据+ AI 一体化平台
330 0
|
缓存 分布式计算 NoSQL
大数据-43 Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
大数据-43 Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
226 2
|
SQL 分布式计算 NoSQL
大数据-42 Redis 功能扩展 发布/订阅模式 事务相关的内容 Redis弱事务
大数据-42 Redis 功能扩展 发布/订阅模式 事务相关的内容 Redis弱事务
182 2
|
机器学习/深度学习 搜索推荐 算法
飞天大数据平台产品问题之AIRec在阿里巴巴飞天大数据平台中的功能如何解决
飞天大数据平台产品问题之AIRec在阿里巴巴飞天大数据平台中的功能如何解决
|
JSON 分布式计算 大数据
MaxCompute产品使用合集之使用数据服务功能,但发现ODPS数据源不支持,该如何解决
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
237 6
|
SQL 分布式计算 DataWorks
MaxCompute产品使用合集之整库离线同步至MC的配置中,是否可以清除原表所有分区数据的功能
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
380 6
|
存储 分布式计算 资源调度
ODPS SQL问题之ODPS逻辑层包含哪些角色,它们各自的功能是什么
ODPS SQL 问题之ODPS逻辑层包含哪些角色,它们各自的功能是什么
283 0

热门文章

最新文章

相关产品

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