当前位置: 首页 > news >正文

单页网站赚钱百度一下你就知道首页

单页网站赚钱,百度一下你就知道首页,网页传奇游戏哪个好,asp网站搭建软件摘要#xff1a; MaxCompute作为阿里云大数据平台的核心计算组件#xff0c;承担了集团内外大部分的分布式计算需求。 免费开通大数据服务#xff1a;https://www.aliyun.com/product/odps 前言 MaxCompute作为阿里云大数据平台的核心计算组件#xff0c;承担了集团内外大部…摘要 MaxCompute作为阿里云大数据平台的核心计算组件承担了集团内外大部分的分布式计算需求。 免费开通大数据服务https://www.aliyun.com/product/odps 前言 MaxCompute作为阿里云大数据平台的核心计算组件承担了集团内外大部分的分布式计算需求。而MaxCompute SQL作为分布式数据处理的主要入口为快速方便处理/存储EB级别的离线数据提供了强有力的支持。 随着大数据业务的不断扩展新的数据使用场景在不断产生在这样的背景下MaxCompute计算框架也在不断的演化原来主要面对内部特殊格式数据的强大计算能力也正在一步步的开放给不同的外部数据。 之前我们介绍了怎样在MaxCompute上处理存储在OSS上面的非结构化数据在这里我们将进一步介绍如何将来自TableStore(OTS)的数据纳入MaxCompute上的计算生态实现多种数据源之间的无缝连接。 对于在线服务等应用场景NoSQL KV Storee.g., BigTable, HBase相比传统数据库具有schema灵活易扩展实时性强等优点。阿里云TableStore(OTS) 是在阿里飞天分布式系统之上实现的大规模的NoSQL数据存储服务提供海量KV数据的存储和实时访问。 在集团内部各BU以及外部阿里云生态圈中具有广泛的应用。 尤其是TableStore在行级别上的实时更新和可覆盖性写入等特性相对于MaxCompute内置表append-only批量操作提供了一个很好的补充。 但是TableStore作为一个偏存储的服务对于存储在其上的海量数据在大规模批量并行处理的计算能力有所欠缺。 在这样的背景下打通MaxCompute的计算和TableStore存储之间的数据链路就显得尤其重要。 1. MaxCompute对TableStore数据进行读取和计算 1.0 使用前提和假设 1.0.1 MaxCompute 2.0计算框架非结构化功能的打开 首先要说明的是MaxCompute新一代的2.0计算框架还在灰度上线的过程中默认设置下许多功能没有打开所以要使用新引进的非结构化数据处理框架需要申请MaxCompute 2.0试用具体开通使用方法请参见 如何申请试用MaxCompute 2.0, 简单来说就是在开通2.0非结构化功能的前提下在每个SQL query执行时必须带上如下setting: set odps.task.major.version2dot0_demo_flighting;set odps.sql.planner.modelot;set odps.sql.ddl.odps2true;set odps.sql.preparse.odps2lot; 下面的范例中就不再重复了但是本文介绍的所有功能均基于以上假设当然这些特殊设置在2.0计算框架完全上线后就可以省略了。 1.0.2 TabelStore基本概念以及网络连通性 如果对于TableStore不熟悉或者对于整个KV table的概念比较陌生同学可以通过TableStore的文档来先了解一些基本概念比如主键分区键属性列等这里的讨论不对这些基本概念做深入的解释和探讨。 同时对于MaxCompute非结构化框架的整体介绍可以参见之前在MaxCompute上处理存储在OSS上面的非结构化数据的介绍文章包括External Table, StorageHandler的概念以及SERDEPROPERTIES的使用等。 MaxCompute与TableStore是两个独立的大数据计算以及大数据存储服务所以两者之间的网络必须保证连通性。 对于MaxCompute公共云服务访问TableStore存储推荐使用TableStore私网地址也就是host名以ots-internal.aliyuncs.com作为结尾的地址例如tablestore://odps-ots-dev.cn-shanghai.ots-internal.aliyuncs.com。 1.0.3 TabelStore类型与MaxCompute类型的对应 TableStore与MaxCompute都有其自身的类型系统。 在MaxCompute处理TableStore数据的时候两者之间的类型对应关系如下 MaxCompute TypeTableStore TypeSTRINGSTRINGBIGINTINTDOUBLEDOUBLEBINARY*BLOB *其中要特别说明的是 对于MaxCompute而言BINARY类型是在新的2.0类型系统中引进的所以如果有需要使用到BINARY类型的时候除了上文1.0.1 里面提到的设置之外还需要额外添加一个设置才能生效: set odps.sql.type.system.odps2true; 1.1 使用STS/RAM的方式访问TableStore数据 需要首先指出的是MaxCompute计算服务要访问TableStore数据需要有一个安全的授权通道。 在这个问题上MaxCompute结合了阿里云的访问控制服务RAM和令牌服务STS来实现对数据的安全反问 首先需要在RAM中授权MaxCompute访问OSS的权限。登录RAM控制台创建角色AliyunODPSDefaultRole并将策略内容设置为 {Statement: [{Action: sts:AssumeRole,Effect: Allow,Principal: {Service: [odps.aliyuncs.com]}}],Version: 1 } 然后编辑该角色的授权策略将权限AliyunODPSRolePolicy授权给该角色。 如果觉得这些步骤太麻烦还可以登录阿里云账号点击此处完成一键授权。 1.2 创建External Table 关联MaxCompute与TableStore 与处理OSS数据的使用方法类似MaxCompute通过EXTERNAL TABLE的方式来对接TableStore的数据用户通过一个CREATE EXTERNAL TABLE的DDL语句把对TableStore表数据的描述引入到MaxCompute的meta系统内部后即可如同使用一个普通TABLE一样来实现对TableStore数据的处理。 这里先提供一个最简单的使用范例并且通过该范例来讨论ODPS对接TableStore的一些概念和实现。 DROP TABLE IF EXISTS ots_table_external;CREATE EXTERNAL TABLE IF NOT EXISTS ots_table_external ( odps_orderkey bigint, odps_orderdate string, odps_custkey bigint, odps_orderstatus string, odps_totalprice double ) STORED BY com.aliyun.odps.TableStoreStorageHandler -- (1) WITH SERDEPROPERTIES ( -- (2) tablestore.columns.mapping:o_orderkey, :o_orderdate, o_custkey, o_orderstatuso_totalprice, -- (3) tablestore.table.nameots_tpch_orders -- (4) ) LOCATION tablestore://odps-ots-dev.cn-shanghai.ots-internal.aliyuncs.com; -- (5) 这个DDL语句将一个TableStore表映射到了MaxCompute的一个External Table上。 在这个基础上后继对TableStore数据的操作可以直接通过External Table进行。 这里先对上面这个CREATE EXTERNAL TABLE的DDL语句做一些解释 1.com.aliyun.odps.TableStoreStorageHandler 是MaxCompute内置的处理TableStore数据的StorageHandler, 定义了MaxCompute和TableStore的交互相关逻辑由MaxCompute实现。 2.SERDEPROPERITES可以理解成提供参数选项的接口在使用TableStoreStorageHandler时有两个必须指定的选项分别是下面介绍的tablestore.columns.mapping和tablestore.table.name。 更多的可选选项将在后面其他例子中提及。 3.tablestore.columns.mapping选项必需选项用来描述对需要MaxCompute将访问的TableStore表的列包括主键和属性列。 这其中以:打头的用来表示TableStore主键例如这个例子中的:o_orderkey和:o_orderdate。 其他的均为属性列。 TableStore支持最少1个最多4个主键主键类型为bigint或string其中第一个主键为分区键。 在指定映射的时候用户必须提供指定TableStore表的所有主键对于属性列则没有必要全部提供可以只提供需要通过MaxCompute来访问的属性列。 4.tablestore.table.name需要访问的TableStore表名。 如果指定的TableStore表名错误不存在则会报错MaxCompute不会主动去创建TableStore表。 5.LOCATION clause用来指定TableStore的具体信息包括instance名字endpoint等。 值得注意的是这里对TableStore数据的安全访问是建立在前文介绍的RAM/STS授权的前提上的。 1.3 通过External Table访问TableStore数据进行计算 在用上述DDL创建出External Table之后TableStore的数据就引入到了MaxCompute的生态中我们现在就可以通过正常的MaxCompute SQL语法来访问TableStore数据了比如 SELECT odps_orderkey, odps_orderdate, SUM(odps_totalprice) AS sum_total FROM ots_table_external WHERE odps_orderkey 5000 AND odps_orderkey 7000 AND odps_orderdate 1996-05-03 AND odps_orderdate 1997-05-01 GROUP BY odps_orderkey, odps_orderdate HAVING sum_total 400000.0; 可以看到在上面的这个例子直接使用的就是我们所熟悉的MaxCompute SQL语法访问TableStore的所有细节由MaxCompute内部处理。 这包括在列名的选择上可以看到在这个SQL里面使用的列名是odps_orderkeyodps_totalprice等而不是原始TableStore里面的主键名o_orderkey或属性列名o_totalprice了因为我们在创建External Table的DDL语句里已经做了对应的mapping。 当然因为具体的mapping是每个用户可以自己控制的所以如果在创建External Table的时候保留原始的TableStore主键/列名也是可以的。 在底层的实现上MaxCompute框架针对TableStore数据的存储特点做了各种优化包括并发读取SQL语句的filtering操作转义等。 举个例子有filtering操作比如上面的WHERE语句时MaxCompute会判断filtering key是否为TableStore表格的主键来决定如何用TableStore的GetRange API来读取最小量数据而不是无条件读取全量数据读到MaxCompute计算节点再做过滤操作。 当然这些实现的优化用户均无需感知由MaxCompute计算框架负责来提供高效的实现。 另外如果需要对一份数据做多次计算相较每次从TableStore去远程读数据一个更高效的办法是先一次性把需要的数据导入到MaxCompute内部成为一个MaxCompute内部表比如 CREATE TABLE internal_orders AS SELECT odps_orderkey, odps_orderdate, odps_custkey, odps_totalprice FROM ots_table_external WHERE odps_orderkey 5000 ; 现在internal_orders就是一个我们熟悉的MaxCompute表了也拥有所有MaxCompute内部表的特性包括高效的压缩列存储数据格式完整的内部宏数据以及统计信息等。 同时因为存储在MaxCompute内部访问速度会比访问外部的TableStore更快尤其适用于需要进行多次计算的热点数据。 2. 数据从MaxCompute写出到TableStore 打通MaxCompute和TableStore的数据生态除了将TableStore作为批量数据处理的数据来源以外一个另外的重要场景是将MaxCompute的数据处理结果输出到TableStore利用TableStore可实时更新和可单行覆盖等特点迅速的将离线计算的结果反馈给在线应用。 这种对TableStore的数据输出可以使用MaxCompute SQL的INSERT OVERWRITE来实现。 需要再次强调的是MaxCompute不会主动创建外部的TableStore表所以在对TableStore表进行数据输出之前必须保证该表已经在TableStore上创建过(否则将报错)。 这样的设计是因为TableStore建表的过程可能涉及到CU的设置计费数据生命周期等一系列选项这些必须由数据的所有者来决定 MaxCompute不拥有这些外部数据也无法做出这些选择。 紧接上面的例子假设我们已经使用上面的DDL语句创建了ots_table_external这个外部表来打通MaxCompute与TableStoreb数据表ots_tpch_orders的链路 而且我们还有一份存储在在MaxCompute内部有一个名为internal_orders的数据现在希望对internal_orders中的数据进行一定处理后再写回TableStore上那么可以直接通过对外部表做INSERT OVERWITE TABLE的操作来实现 INSERT OVERWRITE TABLE ots_table_external SELECT odps_orderkey, odps_orderdate, odps_custkey, CONCAT(odps_custkey, SHIPPED), CEIL(odps_totalprice) FROM internal_orders; 在这里对表中的数据做了一些处理并且把经过处理过的数据重新写回到了TableStore里。 对于TableStore这种KV数据的NoSQL存储介质从MaxCompute的输出将只影响相对应主键所在的行在上面这个例子中也就是只影响所有 odps_orderkey odps_orderdate 这两个主键值能对应行上的数据。 而且在这些TabeleStore行上面也只会去更新在创建External Table (ots_table_external)时指定的属性列而不会去修改未在External Table里面出现的数据列。 关于MaxCompute外部表和TableStore表的对应关系下文会更系统的介绍。 3. 技术细节以及高级用法 从本质上来看MaxCompute表是严格结构化的数据表要求所有的行均遵从严格一致的schema而TableStore的表中存储的是NoSQL的“半结构化”K-V数据。这些基本数据格式上的区别决定了在两个系统的交互过程中行为会有一些区别。 同时MaxCompute作为一个分布式计算系统读写TableStore通过并发执行来实现这就需要对TableStore的数据有一个切割的机制。 在默认情况下MaxCompute会提供一个系统认为最合适的处理方法来实现对TableStore数据的访问和计算而这些实现也能满足绝大部分用户的需求。 但是与此同时为了满足一些对系统比较熟悉的高级用户的特殊需求MaxCompute也提供了更多的可配置选项这里做一些介绍。 3.1 MaxCompute外表与TableStore数据表的对应关系 MaxCompute外表与TableStore数据表是多对一(N:1)的关系。 也就是说可以有多个MaxCompute外表External Table来描述一张TableStore表。 这里的N:1是两个维度上的 不同的MaxCompute外表可以描述一张TableStore表的不同属性列子集比如如果在TableStore的一个表有3个主键列(up to)20个属性列那么通过MaxComptue的外表主键必须提供完备但是属性列则不必比如可以只提供一个属性列那么通过MaxCompute外表进行的所有操作都只会基于主键和所提供的属性列上的数据。不同的MaxCompute外表可以描述一张TableStore表的不同range在本文的例子里都是一个外表对应一个TableStore表的全range但实际使用的时候是可以通过额外选项来指定外表对应的range start和range end的 这可以做到一个外表只映射一个TableStore表的子range。 这个功能这里不展开介绍有需求的话可以联系MaxCompute技术团队。 3.2 MaxCompute读取TableStore数据时的并发度 TableStore是一个分布式KV数据存储系统每个数据表都可能存储在多个后端server上并且根据分区键进行分区具体存储上的分区策略由TableStore决定。 目前通过MaxCompute读取TableStore数据默认的并发度将与TableStore后端的分区数目相同。 唯一的例外是在采用INTEGER64作为分区键且TableStore后端的分区数目大于1时MaxCompute会自动对并发度再做调整在更高的并发度上读取数据。 此外TableStore自身的系统也在不断发展以后将提供更强大的API接口给MaxCompute来使用到时候将可以根据后端数据的大小来准确的做出数据切割。 更准确的控制每个并发MaxCompute worker处理的数据量和计算时间。 这方面将在这些功能实现后再更新来做具体说明。 最后如果用户对自己存储在TableStore数据有着非常好的了解比如对于不同key range中的数据量都能做出很好的预估MaxCompute还提供让用户自己指定并发度的选型用户的控制甚至可以细化到指定每个worker应该处理哪个range的数据。 有这个需求的用户可以联系MaxCompute技术团队。 3.3 MaxCompute写出TableStore数据时的并发度 在将MaxCompute内部数据写出到TableStore时并发度由MaxCompute根据数据量自动进行控制。 当然用户也可以手动调节SQL执行过程中的mapper/reducer数目来调整并发度。 但是绝大部分情况下 MaxCompute本身适配的并发度都是比较合理的一般不建议自己手工设置mapper/reducer数目。 另外在一些场景上MaxCompute计算服务与TableStore存储服务之间会存在着需要适配的情况。一般来说MaxCompute可以调度起计算节点都比较充裕而大量计算节点同时往TableStore写出数据时可能会打满网络。 这种情况下单纯调高MaxCompute计算节点数目来并发写出数据并不会带来额外的提速。 所以在特别大的规模上用户最好能提前和TableStore服务沟通以保证TableStore能提供足够的吞吐量满足需求。 3.4 MaxCompute访问TableStore的网络连通性 因为MaxCompute与TableStore是两个分开的云服务所以在不同的部署集群上的网络连通性有可能影响MaxCompute访问TableStore的数据的可达性。 关于TableStore的节点实例服务地址等概念可以参见TableStore相关介绍。 如同上文介绍的在MaxCompute公共云服务访问TableStore存储推荐使用TableStore私网地址即以ots-internal.aliyuncs.com结尾的host地址。 4. 结语构造大数据生态 随着MaxCompute非结构化数据处理框架的上线MaxCompute开放了处理外部数据的接口包括之前介绍的访问OSS数据以及本文描述的访问TableStore数据。 我们希望借此来实现整个阿里云计算与数据的生态融合 在不同的项目上我们已经看到了在MaxCompute上处理OSS上的海量视频图像等非结构化数据的巨大潜力。 随着TableStore数据支持的加入期待计算和更多数据的碰撞能打通更多的应用场景让OSS数据TableStore数据以及MaxCompute内部存储的数据能在MaxCompute的核心计算引擎上产生更大的价值。 原文链接 干货好文请关注扫描以下二维码
http://www.sadfv.cn/news/65831/

相关文章:

  • 外贸网站海外推广3个必去网站wordpress 账号图片
  • 永州市网站建设软文台
  • 成都网站建设冠辰西安抖音运营
  • 广州中小企业网站制作微盟登录平台
  • 网站做百度竞价邯郸移动网站建设
  • tomcat 建网站网站定制建设公司
  • 33岁改行做网站建设西安企业网站排名优化工具
  • 重庆没建网站的企业中国网库企业黄页
  • 小榄网站建设公司wordpress首次请求慢
  • 食品网站的建设背景余姚网站建设余姚
  • 镇江网站建设企业做旅游计划上哪个网站
  • 教师在哪些网站可以做兼职国外 设计公司手机网站
  • 个人淘宝客网站有哪些休闲食品网站建设规划书
  • 学校招聘教师网站建设建设部网站防排烟规范
  • 服装设计有哪些网站黄骅港金沙滩门票价格
  • 公司的网站难不难做本机iis发布网站后台管理
  • 电子商务平台如何推广营销网页搜索优化seo
  • 南宁专业网站制作前十排名网架公司运营经验
  • wordpress站点地址没有微信小程序如何做
  • 网站可信认证必做设计制作小车二教学设计
  • 网站建设中的html页面网站建设流程代理商
  • 高端网站建设公司有哪些项目aspx高性能网站建设
  • 成都行业网站建设那里好深圳设计网站费用
  • 济南app网站建设word文档怎么做网站跳转链接
  • cms网站建设商业空间设计案例
  • 先做网站还是先域名备案南安seo关键词
  • 官方网站做自适应好还是响应式北京网站建设的服务商
  • 国内自建的海淘网站简述搜索引擎的工作原理
  • 成立学校网站建设小组网站域名注册申请
  • 唐山住房和城乡建设局网站做网站界面一般用什么来做