1、卷首语2021 年 3 月,以 MaxCompute 为核心代表的阿里云数据仓库产品凭借产品现有能力、产品战略、市场表现三项优势,进入 Forrester Wave 2021 Q1 云数据仓库卓越表现者象限,成为入选此次评测的唯一中国厂商。数以万计的企业正在基于 MaxCompute 构建自己的大数据平台,发掘数据价值,发现业务机遇,洞悉业务前景,预见潜在风险,助力企业业务健康蓬勃发展。阿里云 MaxCompute 作为一款功能强大的 SaaS 模式云原生数据仓库产品,已经拥有了庞大的用户群体。本电子书旨在帮助用户快速了解 MaxCompute,有效降低学习成本。本书包含MaxCompute
2、产品核心功能、产品架构、典型场景以及生态体系,同时对使用过程中可能遇到的200+常见问题的进行逐一解答。不仅帮您直观全面的了解 MaxCompute,更从 MaxCompute 客户端(odpscmd)、DataStudio、MaxCompute Studio 多个工具出发,解答包括 MaxCompute SQL、MaxCompute Spark、产品计费、元数据(Information Schema)、外部表、SDK 等 17 大功能点的常见使用问题。希望本书能够助您快速上手 MaxCompute,用好 MaxCompute,最大限度发挥数据的价值,支撑业务增长。目录MaxCompute 核
3、心功能.6MaxCompute 产品架构.8MaxCompute 产品优势.11MaxCompute 核心场景.12云数据仓库.12湖仓一体.14日志大数据分析.15MaxCompute 生态.18商业智能(BI)工具.18数据库管理工具.20ETL 工具.21MaxCompute 常见问题.22产品简介.22MaxCompute 相关术语、数据类型、项目空间等相关问题.22准备工作.29MaxCompute 客户端、Endpoint、Project 等相关问题.29快速入门.31MaxCompute 基础 SQL 操作以及常用功能相关问题.31工具及下载.36MaxCompute 客户端、M
4、axCompute Studio、MMA 等工具相关问题.36常用命令.41MaxCompute 基础命令、生命周期、正则表达式等命令相关问题.41数据同步.47数据上传到 MaxCompute 过程中相关问题.47产品计费.50MaxCompute 计费相关问题.50安全管理.53MaxCompute 权限、授权、白名单等相关问题.53内建函数.55MaxCompute 常用内建函数使用问题.55外部表.57MaxCompute OSS 外部表使用相关问题.57元数据(Information Schema).59MaxCompute Information Schema 常见使用问题.59S
5、QL.60MaxCompute SQL 语法、报错、使用等相关问题.60PyODPS.73Python 连接 MaxCompute 常见使用问题.73Java SDK.75Java 连接 MaxCompute 常见使用问题.75Tunnel SDK.76Tunnel 连接 MaxCompute 常见使用问题.76MaxCompute Spark.80Spark on MaxCompute 常见配置及使用问题.80UDF.82使用 MaxCompute UDF 过程中常见报错问题.82MaxCompute 核心功能MaxCompute 核心功能功能分类功能描述湖仓一体集成对数据湖(OSS 或 H
6、adoop HDFS)的访问分析,支持通过外部表映射、Spark 直接访问方式开展数据湖分析。在一套数据仓库服务和用户接口下,实现数据湖与数据仓库的关联分析。详细信息,请参见 MaxCompute 湖仓一体。支持流式采集和近实时分析支持流式数据实时写入并在数据仓库中开展分析。与云上主要流式服务深度集成,轻松接入各种来源的流式数据。支持高性能秒级弹性并发查询,满足近实时分析场景需求。提供持续的 SaaS 化云上数据保护为云上企业提供基础设施、数据中心、网络、供电、平台安全能力、用户权限管理、隐私保护等三级超 20 项安全功能,兼具开源大数据与托管数据库的安全能力。详情请参见安全指南。MaxCom
7、pute 产品架构MaxCompute 产品架构模块名称功能说明计算模型数据通道MaxCompute 支持多种数据通道满足多场景需求:SQL:MaxCompute 对外提供 SQL 功能。您可以将 MaxCompute 作为传统的数据库软件操作,但其却能处理 EB 级别的海量数据。说明 MaxCompute SQL 不支持事务、索引。MaxCompute 的 SQL 语法与 Oracle、MySQL 有一定差别,您无法将其他数据库中的 SQL 语句无缝迁移至 MaxCompute 中。详情请参见与其他 SQL 语法的差异。MaxCompute 主要用于 100 GB 以上规模的数据计算,因此
8、MaxCompute SQL 最快支持在分钟或秒钟级别完成查询返回结果,但无法在毫秒级别返回结果。MaxCompute SQL 的优点是学习成本低,您不需要了解复杂的分布式计算概念。如果您具备数据库操作经验,便可快速熟悉 MaxCompute SQL 的使用。External Table:提供处理除 MaxCompute 内部表以外的其他数据的能力。您可以通过一条简单的 DDL 语句,在 MaxCompute 上创建一张外部表,通过外部表关联外部数据源。Java UDF:当 MaxCompute 的内建函数无法满足计算需求时,您可以通过 Java构建自定义函数。Python UDF:当 Max
9、Compute 的内建函数无法满足计算需求时,您可以通过Python 构建自定义函数。MapReduce:MapReduce 是 MaxCompute 提供的 Java MapReduce 编程模型,它可以简化开发流程,更为高效。Hologres:Hologres 与 MaxCompute 在底层无缝连接,您无须移动数据,即可使用标准的 PostgreSQL 语句查询分析 MaxCompute 中的海量数据,快速获取查询结果。PAI:PAI 是基于 MaxCompute 的一款机器学习算法平台。它实现了数据无需搬迁,便可进行从数据处理、模型训练、服务部署到预测的一站式机器学习。PyODPS:P
10、yODPS 是 MaxCompute 的 Python 版本的 SDK,提供简单方便的Python 编程接口。Graph:Graph 是一套面向迭代的图计算处理框架。Tunnel:提供高并发的数据上传下载服务。MaxCompute 产品架构MaxCompute 产品优势MaxCompute 产品优势MaxCompute 的主要优势如下:简单易用面向数据仓库实现高性能存储、计算。预集成多种服务,标准 SQL 开发简单。内建完善的管理和安全能力。免运维,按量付费,不使用不产生费用。匹配业务发展的弹性扩展能力存储和计算独立扩展,动态扩缩容,按需弹性扩展,无需提前规划容量,满足突发业务增长。支持多种分
11、析场景支持开放数据生态,以统一平台满足数据仓库、BI、近实时分析、数据湖分析、机器学习等多种场景。开放的平台支持开放接口和生态,为数据、应用迁移、二次开发提供灵活性。支持与 Airflow、Tableau 等开源和商业产品灵活组合,构建丰富的数据应用。MaxCompute 核心场景MaxCompute 核心场景3、与机器学习算法平台 PAI 的对接也帮助了公司技术团队在机器学习等高难度领域大数据应用的探索,比如尝试了训练回归模型对用户上传视频的打分,还有对文本的处理聚类等。4、基于统一的数据存储和计算,公司通过对用户的特征抽取,开发了自己的一套基于内容的推荐模型(通过用户对内容的行为,在 Ma
12、xCompute 中通过 SQL/MR 的计算生成用户特征,通过 DataX存储在 OTS 中,在实时的计算中获取并对用户进行基于兴趣的内容推荐),和阿里云推荐引擎一起,为用户提供个性化内容,也取得了不错的效果。同时也在智能搜索方面做了初步的尝试。收益不需要像传统大数据业务一样构建一个非常复杂的 Hadoop 栈,并且对其进行运维,节省了金钱和时间成本。MaxCompute 的整个生态系统设计的比较完善,无需专职数据团队,降低了人员成本。得益于 MaxCompute 的生态,可以在 21 天内搭建推荐系统。借助阿里云实时计算非侵入实现业务总线,满足了绝大部分场景。架构MaxCompute 核心
13、场景MaxCompute 核心场景架构图日志大数据分析某天气信息查询软件客户将日志分析业务从云下 Hadoop 集群迁移到阿里云 MaxCompute 后,开发效率提升超过 5 倍,存储和计算费用节省了 70%,更高效的赋能其个性化运营策略。挑战公司运营团队每天最关心的是用户正在如何使用 APP,在他们操作中透露了哪些个性化需求。这些数据全部存储在公司的 API 日志中,对这些数据分析,就变成了运营团队每天最重要的工作。公司API 每天产生的日志量大约在 2TB 左右,主要的日志分析场景是天气查询业务和广告业务。“用户每天产生的日志量大约在 2TB。我们需要将这些海量的数据导入云端,然后分天、
14、分小时的展开数据分析作业,分析结果再导入数据库和报表系统,最终展示在运营人员面前。”公司运维部经理介绍,整个过程中数据量庞大,且计算复杂,这对云平台的大数据能力、生态完整性和开放性提出了很高的要求。之前公司使用国外某云计算服务公司的云服务器存储这些数据,利用 HadoopMaxCompute 核心场景MaxCompute 核心场景架构图MaxCompute 生态MaxCompute 生态商业 BI 工具工具版本要求接入方法参考资源TableauTableau:Desktop 2019.4 及以上版本MaxCompute:JDBC 驱动v3.0.1 及以上版本Tableau 连接MaxCompu
15、teHow to connect Tableauto Alibaba MaxComputeManage Data SourcesFineBIFineBI:v5.1.9 及以上版本MaxCompute:JDBC 驱动v3.2.8 及以上版本FineBI 连接MaxCompute阿里云 MaxCompute 数据连接(FineBI)FineReportFineReport:v10.0 及以上版本MaxCompute:JDBC 驱动v3.2.8 及以上版本FineReport 连接MaxCompute阿里云 MaxCompute 数据连接(FineReport)Yonghong BIYonghong
16、 Desktop:v8.6 及以上版本Yonghong BI 连接MaxCompute添加 MaxCompute 数据源Quick BI无特殊要求Quick BI 连接MaxCompute云数据源 MaxCompute观远 BI无特殊要求观远 BI 连接MaxCompute观远 BI网易有数 BI无特殊要求网易有数 BI 连接MaxCompute网易有数 BIMaxCompute 生态MaxCompute 生态工具版本要求接入方法参考资源DataGripDataGrip:无特殊要求MaxCompute:JDBC 驱动 v3.2.8及以上版本DataGrip 连接MaxComputeDataba
17、se ConnectionSQLWorkbench/JSQL Workbench/J:无特殊要求MaxCompute:JDBC 驱动 v3.0.1及以上版本SQL Workbench/J 连接 MaxComputeJDBC 驱动程序ETL 工具ETL(Extract-Transform-Load)用来描述将数据从来源端经过抽取(Extract)、转换(Transform)、加载(Load)至目的端的过程。MaxCompute 支持的 ETL 工具如下。工具接入方法Kettle使用 Kettle 调度 MaxComputeApache Airflow使用 Apache Airflow 调度 Ma
18、xComputeAzkaban使用 Azkaban 调度 MaxComputeMaxCompute 常见问题MaxCompute 常见问题5.MaxCompute 相关术语有哪些?在开始使用 MaxCompute 产品前,您可以提前查阅 MaxCompute 所涉及的术语及其含义,为了解产品及快速上手提供帮助。您可以看下官方文档,将为您介绍 MaxCompute 涉及的术语及其概念。6.MaxCompute 有什么功能?全托管的 Serverless在线服务对外以 API 方式访问的在线服务,开箱即用。预铺设大规模集群资源,近乎无限资源,您可以按需使用、按量计费。无需平台运维,最小化运维投入。
19、弹性能力与扩展性存储和计算独立扩展,支持企业将全部数据资产在一个平台上进行联动分析,消除数据孤岛。支持实时根据业务峰谷变化分配资源。统一丰富的计算和存储能力MaxCompute 支持多种计算模型和丰富的 UDF。采用列压缩存储格式,通常情况下具备 5 倍压缩能力,可以大幅节省存储成本。与 DataWorks 深度集成一站式数据开发与治理平台 DataWorks,可实现全域数据汇聚、融合加工和治理。DataWorks 支持对 MaxCompute 项目进行管理以及 Web 端查询编辑。集成 AI 能力与机器学习平台 PAI 无缝集成,提供强大的机器学习处理能力。您可以使用熟悉的 Spark-ML
20、 开展智能分析。使用 Python 机器学习三方库。深度集成 Spark 引擎内建 Apache Spark 引擎,提供完整的 Spark 功能。与 MaxCompute 计算资源、数据和权限体系深度集成。MaxCompute 常见问题MaxCompute 常见问题8.MaxCompute 数据类型版本如何理解?目前 Maxompute 一共支持 3 个数据类型版本:1、MaxCompute 2.0 数据类型2、MaxCompute 1.0 数据类型3、MaxCompute Hive 兼容模式(即部分数据类型和 SQL 行为兼容 Hive)MaxCompute 2.0推出了兼容开源主流产品的2
21、.0数据类型和Hive兼容数据类型两个数据类型版本。加上原有的 1.0 数据类型版本,目前 Maxompute 一共支持 3 个数据类型版本。MaxCompute 数据类型版本-MaxCompute 设置数据类型版本属性的参数共有 3 个:odps.sql.type.system.odps2:MaxCompute 2.0 数据类型版本的开关,属性值为 True 或 False。odps.sql.decimal.odps2:MaxCompute 2.0 的 Decimal 数据类型的开关,属性值为 True 或 False。patible:MaxCompute Hive 兼容模式(即部分数据类型
22、和 SQL 行为兼容 Hive)数据类型版本的开关,属性值为 True 或 False。9.MaxCompute 有数据库一致性和锁的处理机制吗?MaxCompute 支持 ACID 语义原子性(Atomicity):一个操作或是全部完成,或是全部不完成,不会结束在中间某个环节。一致性(Consistency):从操作开始至结束的期间,数据对象的完整性没有被破坏。隔离性(Isolation):操作独立于其它并发操作完成。持久性(Durability):操作处理结束后,对数据的修改将永久有效,即使出现系统故障,该修改也不会丢失。10.什么是 MaxCompute 表的生命周期(Lifecycle
23、)?MaxCompute 表的生命周期(Lifecycle),指表(分区)数据从最后一次更新的时间算起,在经过指定的时间后没有变动,则此表(分区)将被 MaxCompute 自动回收。这个指定的时间就是生命周期。MaxCompute 常见问题MaxCompute 常见问题14.创建 MaxCompute 项目空间,是只能在 DataWorks 控制台中创建吗?是的。请在 DataWorks 控制台上进行操作。创建项目空间前,您需要先服务,并确保开通的Region 与 MaxCompute 开通的 Region 保持一致。15.现有账号的 AK 禁用,创建一个新的 AK,会对之前 AK 创建的周
24、期性任务有影响吗?有的,如果 AccessKey 被禁用或删除,将直接影响您的 DataWorks 中各类任务的正常运行。AK 信息谨慎操作。其余 AK 操作请参考官方文档。16.MaxCompute 的表格类型有几种,分别为什么?MaxCompute 的表格有两种类型:内部表和外部表(MaxCompute2.0 版本开始支持外部表)。对于内部表,所有的数据都被存储在 MaxCompute 中,表中列的数据类型可以是 MaxCompute 支持的任意一种数据类型。对于外部表,MaxCompute 并不真正持有数据,表格的数据可以存放在OSS 或 OTS 中。MaxCompute 仅会记录表格的
25、 Meta 信息,您可以通过 MaxCompute 的外部表机制处理 OSS 或 OTS 上的非结构化数据,例如视频、音频、基因、气象、地理信息等。17.如果想使用 MaxCompute 的自定义函数(UDF)或 MapReduce 功能需要依赖什么资源来完成?SQL UDF:您编写 UDF 后,需要将编译好的 Jar 包以资源的形式上传到 MaxCompute。运行此UDF 时,MaxCompute 会自动下载这个 Jar 包,获取您的代码来运行 UDF,无需您干预。上传 Jar包的过程就是在 MaxCompute 上创建资源的过程,这个 Jar 包是 MaxCompute 资源的一种。Ma
26、pReduce:您编写 MapReduce 程序后,将编译好的 Jar 包作为一种资源上传到 MaxCompute。运行 MapReduce 作业时,MapReduce 框架会自动下载这个 Jar 资源,获取您的代码。您同样可以将文本文件以及 MaxCompute 中的表作为不同类型的资源上传到 MaxCompute,您可以在 UDF 及MaxCompute 常见问题MaxCompute 常见问题准备工作MaxCompute 客户端、Endpoint、Project 等相关问题1.开通 MaxCompute 的准备工作如果您是第一次使用 MaxCompute 和 DataWorks,请使用阿里
27、云账号登录;如果您需要使用 RAM子账号登录和创建项目,请根据准备阿里云账号检查账号是否已可用并授权。如果验证无误,请根据下述操作开通 MaxCompute 服务。2.创建项目空间的前提条件MaxCompute 控制台即为 DataWorks 控制台。如果您需要创建工作空间,请在 DataWorks 控制台上进行操作。创建项目空间前,您需要先开通 DataWorks 服务,并确保开通的 Region 与MaxCompute 开通的 Region 保持一致。DataWorks 工作空间模式分为简单空间模式和标准空间模式,两种模式的差异请参见简单模式和标准模式的区别。创建工作空间时,您需要选择合适
28、的工作空间。3.安装并配置 MaxCompute 客户端(odpscmd)的前提条件客户端(odpscmd)基于 Java 开发。在安装前,请确保您的设备上有 Java 8 或以上版本。在配置客户端之前,请确保您已创建好项目空间。详情请参见创建项目空间。4.需要配置 Endpoint、Tunnel Endpoint 的场景MaxCompute 客户端(odpscmd)配置,请参见安装并配置客户端。MaxCompute Studio project 连接配置,请参见项目空间连接管理。SDK 连接 MaxCompute 配置,请参见 Java SDK 介绍和 Python SDK 连接 MaxCo
29、mpute 接口配置。PyODPS 创建 MaxCompute 入口对象、通用配置、数据上传下载配置,请参见配置选项。DataWorks 的数据集成脚本模式连接 MaxCompute 数据源配置请参见配置 MaxCompute 数据源。MaxCompute 常见问题MaxCompute 常见问题快速入门MaxCompute 基础 SQL 操作以及常用功能相关问题1.新创建的工作空间。怎么不支持数据类型自动隐式转换呢?看下是否开启了 MaxCompute2.0,可以关闭 2.0 之后可进行隐式转换。具体可参考官方文档。2.在 MaxCompute 中的创建表的方式有哪些?在 MaxCompute
30、 中的创建表的方式有以下几种:通过 MaxCompute 客户端(odpscmd)常用命令实现。通过 MaxCompute Studio 实现,详情请参见可视化创建/修改/删除表。通过 DataWorks 实现,详情请参见表管理。通过 SDK 接口创建表。3.创建和查看表的前提条件有哪些?请确保以下工作已经完成:开通阿里云账号,购买 MaxCompute。创建要使用的项目空间,详情请参见创建空间。如果要使用的项目空间已存在,请确保已被添加至此项目空间并被赋予建表等权限。4.如何使用 Tunnel 命令导入数据?可以使用 tunnel upload 命令上传数据至 MaxCompute 表,每一
31、次上传只支持数据上传到一张表或表的一个分区。具体可以参考官方文档。MaxCompute 常见问题325.其它导入方式有哪些?除了通过 MaxCompute 客户端(odpscmd)导入数据,您也可以使用 MaxCompute Studio、TunnelSDK、数据集成、开源的 Sqoop、Fluentd、Flume、LogStash 等工具将数据导入到 MaxCompute,详情请参见数据上云工具介绍。6.MaxCompute 支持什么方式运行 SQL 语句?MaxCompute 支持使用 DataWorks、odpscmd、SDK、JDBC 等方式提交 SQL。7.MaxCompute 目前
32、支持的 SQL 语法有哪些?MaxCompute SQL 采用的是类似于 SQL 的语法。它的语法是标准语法 ANSI SQL92 的一个子集,并有自己的扩展。具体可以参考官方文档。8.如何使用临时查询运行 SQL 语句?如果您已经创建了 MaxCompute 项目(DataWorks 工作空间),可以直接使用 DataWorks 临时查询功能,快速运行 SQL 语句操作 MaxCompute。9.复杂数据类型有哪些?MaxCompute2.0 支持的复杂数据类型如下:类型定义方法构造方法ARRAYarrayarraystructarray(1,2,3)array(array(1,2),arr
33、ay(3,4)33MaxCompute 常见问题类型定义方法构造方法MAPmapmapsmallint,arraymap(“k1”,“v1”,“k2”,“v2”)map(1S,array(a,b),2S,array(x,y)STRUCTstructstructfield1:bigint,field2:array,field3:mapnamed_struct(x,1,y,2)named_struct(field1,100L,field2,array(1,2),field3,map(1,100,2,200)10.如何使用 Drop Table?命令格式 DROP TABLE IF EXISTS t
34、able_name;功能说明 删除一张表。如果不指定 IF EXISTS 选项而表不存在,则返回异常;如果指定此选项,无论表是否存在,均返回成功。示例-删除表 sale_detail。如果表存在,返回成功。DROP TABLE sale_detail;-删除表 sale_detail。无论 sale_detail 表是否存在,均返回成功。11.如何查看表信息?DESC;可参考官方文档。12.如何使用 Show Tables 和 Show Tables like?命令格式 SHOW TABLES;SHOW TABLES like chart;功能说明 SHOW TABLES:列出当前项目空间下所
35、有的表。SHOW TABLES like chart:列出当前项目空间下表名与chart匹配上的表,支持正则表达式。可以用通配符*,例如:show tables*abc*MaxCompute 常见问题MaxCompute 常见问题自定义函数类型名称应用场景UDTFUser Defined Table ValuedFunction。用户自定义表值函数,又称表格 UDF。适用于一进多出业务场景。即其输入与输出是一对多的关系,读入一行数据,输出多个值可视为一张表。UDAFUser Defined Aggregation Function。用户自定义聚合函数。适用于多进一出业务场景。即其输入与输出是多
36、对一的关系,将多条输入记录聚合成一个输出值。16.MaxCompute Spark 有哪些使用限制?目前 MaxCompute Spark 支持以下使用场景:Java/Scala 所有离线场景,GraphX、Mllib、RDD、Spark-SQL、PySpark 等。读写 MaxCompute Table。OSS 非结构化存储支持。暂不支持以下场景:读写 VPC 环境下的服务,如 RDS、Redis、ECS 上部署的服务等。Streaming 场景。交互式类需求,Spark-Shell、Spark-SQL-Shell、PySpark-Shell 等。按量计费开发者版资源仅支持 MaxCompu
37、teSQL(支持使用 UDF)、PyODPS 作业任务,暂不支持 MapReduce、Spark 等其它任务。17.MaxCompute 误删除表数据如何恢复?MaxCompute 提供数据备份与恢复功能,系统会自动备份数据的历史版本(例如被删除或修改前的数据)并保留一定时间,您可以对保留周期内的数据进行快速恢复,避免因误操作丢失数据。可以参考官网文档。18.MaxCompute 查询加速 MCQA 只能支持标准模式吗?当前 MaxCompute 查询加速(MCQA)功能支持按量付费、包年包月两种付费模式。工作空间的简单模式、标准模式都支持。具体可参考官方文档。MaxCompute 常见问题M
38、axCompute 常见问题4.使用 Tunnel 可以下载某个分区的数据吗?可以,参考一下 Tunnel 命令说明文档。5.可以使用 Tableau 连接 MaxCompute 吗?MaxCompute 支持您将 MaxCompute 项目数据接入 Tableau 进行可视化分析,您可以利用 Tableau 简便的拖放式界面,自定义视图、布局、形状、颜色等,帮助您展现自己的数据视角。可参考官方文档。6.使用 MMA 工具做数据迁移时,有个 job 一直处于 pending 状态,无法删除 pending 的 job,如何删除呢?目前只能取消迁移 succeeded 和 failed 任务。会
39、有一个重试,重试结果任务挂掉就可以删除。关于 MMA 的具体内容,可以参考官方文档。7.使用 MaxCompute 需要准备什么开发工具呢?这里面的工具有三种:Odpscmd:MaxCompute 客户端,喜欢用命令行的同学可以试试。因为 odpscmd 是基于 JAVA 开发的,所以记得配置 JRE 1.7 以上版本,建议使用 JRE1.7/1.8。MaxCompute Studio:是 MaxCompute 平台提供的安装在开发者客户端的大数据集成开发环境工具,是一套基于流行的集成开发平台 IntelliJ IDEA 的开发插件。DataWorks:是阿里云重要的 PaaS 平台产品,可以
40、提供数据集成、数据开发、数据管理、数据质量和数据服务等全方位的产品服务,拥有一站式开发管理的界面,DataWorks 是基于 MaxCompute为核心的计算、存储引擎,可以提供海量数据的离线加工分析、数据挖掘等功能。MaxCompute 常见问题MaxCompute 常见问题12.如何正确安装 MaxCompute 客户端?1、根据自身系统安装匹配 JDK(建议 1.7/1.8)并配置环境;2、官网文档下载最新版客户端文件并解压;3、根据开通好的工作空间配置 config 文件;4、根据自身系统选择执行文件(bin 文件内);5、执行测试建表语句:create table tbll(id b
41、igint)。安装及配置客户端过程中,可能会出现错误,请参考实践文章解决。13.配置 MaxCompute 客户端时报错 connect timed out 怎么解决?一般是 endpoint 没有配置正确,如何正确配置 MaxCompute 客户端参考文章。14.MaxCompute 中的数据通道 Datahub 和 Tunnel 应用场景的区别是什么?Datahub 是阿里云上的实时消息队列服务,与 MaxCompute 紧密集成。用户可以将实时数据写入Datahub 的 topic,并通过 Datahub 的投递策略,定期将数据投递到 MaxComptue 表,满足实时数据准实时写入 M
42、axCompute 的需要。Tunnel 用于批量上传数据到离线表里,适用于离线计算的场景。可参考文档。15.如何查看 MaxCompute JDBC Driver 的日志?MaxCompute JDBC Driver 的日志记录了对 JDBC 接口调用的详细信息,包括调用的类名、方法名、行数、参数以及返回值等。通过这些信息,用户可以轻松地进行 Debug。MaxCompute JDBCDriver 的日志默认放在 Driver Jar 包所在的同级目录,文件名为 jdbc.log。如果将用户代码与Driver 打包为一个超级 Jar,日志将会在超级 Jar 所在的同级目录。MaxComput
43、e 常见问题MaxCompute 常见问题常用命令MaxCompute 基础命令、生命周期、正则表达式等命令相关问题1.常用命令有哪些?MaxCompute 常用命令如下:类别常用命令项目空间操作进入项目空间(use)查看项目空间属性(setproject)设置项目空间属性(setproject)查看项目空间账号体系(list accountproviders)增加 RAM 账号体系(add)删除 RAM 账号体系(remove)set 操作setshow flags安全操作开启项目空间数据保护(ProjectProtection)添加可信项目空间(add trustedproject)移除可
44、信项目空间(remove trustedproject)查看可信项目空间(list trustedprojects)查看项目空间的安全配置(show SecurityConfiguration)MaxCompute 常见问题MaxCompute 常见问题类别常用命令实例操作查看实例信息(show)查看实例状态(status)查看正在执行的实例信息(top instance)停止实例(kill)获取实例对应的作业信息(desc)获取实例对应的作业运行日志信息(wait)资源操作添加资源(add)查看资源列表(list)为资源创建别名(alias)下载资源(get)删除资源(drop)函数操作注册
45、函数(create function)注销函数(drop function)查看函数(desc function)查看函数列表(list functions)Tunnel 操作上传数据(Tunnel upload)下载数据(Tunnel download)时区配置操作时区配置操作其它操作计量预估(cost sql)MaxCompute 常见问题442.MaxCompute 中有命令可以把所有的 project 列出来吗?可以执行 list projects-user 可以看到账号下的 project 列表。3.MaxCompute 客户端(odpscmd)可以通过什么命令导出数据?可以使用 T
46、unnel download。可以参考下面这篇官方文档。4.如何查看 MaxCompute 每个分区存储的数据大小?desc partition();比如 desct 1 partition(ds=20190820);5.如何查看当前项目空间的所有自定义函数?查看当前项目空间中的所有自定义函数:LIST FUNCTIONS;查看指定项目空间下的所有自定义函数:LIST FUNCTIONS-p project_name;可参考官方文档。6.在 MaxCompute 中如果一个表下面有很多分区,需要清空这个表所有的分区,应该怎么操作?使用删除分区语法:ALTER TABLE TABLE_NAME
47、DROP IF EXISTS PARTITION partition_spec;需要一个个删除分区,如果要删除大量分区,建议重建一个新表。具体操作可参考文档。45MaxCompute 常见问题7.MaxCompute 表 dim_xxxx 正在使用时找不到了。使命令行 show p;没有查到相关 sql,没有发现 DROP 语句,这个表是谁在什么时间删除的?如果没有 DROP 语句,表是因为设置了 lifecycle 导致的。当设置 lifecycle 后数据没有更新的,到时间后表会被 MaxCompute 自动回收。8.有什么命令可以查询 MaxCompute 内表的存储量和记录条数?单表的
48、存储量可以使用 desc 命令查看,记录条数可以使用 count 函数。9.MaxCompute 表的默认生命周期是多少呢?如何查看具体的值?以及各分区的 lifecycle 的值?如果您没有为表指定生命周期,则表(分区)不会根据生命周期规则被 MaxCompute 自动回收,所以默认周期为永久。如果设置了 lifecycle,可以通过 desc table 命令来查看。可参考官方文档。10.MaxCompute 中如何禁止/恢复生命周期功能?可使用禁止/恢复生命周期 SQL 来设置。具体语法如下:alter table enable|disable lifecycle;11.Tunnel U
49、pload 是否支持通配符或正则表达式?使用 Tunnel Upload 命令上传数据时,不支持通配符或正则表达式。12.Tunnel Upload 对文件大小是否有限制?记录大小是否有限制?是否要使用压缩?使用 Tunnel Upload 命令上传文件时,对文件大小没有限制,但一次上传时长不能超过 2 小时。您可以根据实际上传速度和时间估算能够上传的数据量。MaxCompute 常见问题MaxCompute 常见问题17.Tunnel 使用分隔符时,需要注意什么?Tunnel 使用分隔符时,需要注意:行分隔符为 rd,列分隔符为 fd。列分隔符 fd 不能包含行分隔符 rd。Tunnel 的
50、默认分隔符为rn(Windows)和n(Linux)。上传开始的时候,屏显会打印提示信息,告知本次上传所使用的行分隔符(0.21.0 版本及以后)供用户查看和确认。数据同步数据上传到 MaxCompute 过程中相关问题1.如何跨 region 迁移 MaxCompute 相关的业务流程以及表数据?DataWorks 迁移可以使用迁移助手。MaxCompute 表数据迁移有四个方法:用 DataWorks 的数据集成去做数据同步。用 MaxCompute 的 insert overwrite 方式。用 MaxCompute 的 tunnel sdk 方式解决。使用 CLONE TABLE。2.