简介: 近几年,数据湖架构的概念逐渐兴起,很多企业都在尝试构建数据湖。相比较大数据平台,数据湖在数据治理方面提出了更高的要求。对于数据湖场景所提出的新需求,“传统”的大数据工具在很多方面都面临着新的挑战。JindoTable 正是专为解决数据湖管理结构化数据甚至是半结构化数据的痛点而设计的,包括数据治理功能和查询加速功能。

概述

近几年,数据湖架构的概念逐渐兴起,很多企业都在尝试构建数据湖。相比较大数据平台,数据湖在数据治理方面提出了更高的要求。对于数据湖场景所提出的新需求,“传统”的大数据工具在很多方面都面临着新的挑战。JindoTable 正是专为解决数据湖管理结构化数据甚至是半结构化数据的痛点而设计的,包括数据治理功能和查询加速功能。

数据优化

数据湖需要存储来自各种数据源的数据。对于 HDFS 集群,小文件问题让很多用户倍感烦恼。在存储计算分离的数据湖中,小文件同样会产生很多问题:过多的文件数会导致目录list时间显著变长,小文件也会影响很多计算引擎的并发度。此外,由于对象存储一般以对象为单位,小文件也会导致请求数量的上升,会明显影响元数据操作的性能,更会增加企业需要支付的费用。而如果数据文件过大,如果数据又使用了不可分割的压缩格式,后续计算的并发度会过低,导致无法充分发挥集群的计算能力。因此,即使是数据湖架构中,对数据文件进行治理和优化也是非常必要的。

基于数据湖所管理的元数据信息,JindoTable 为客户提供了一键式的优化功能,用户只要在资源较为空闲时触发优化指令,JindoTable 可以自动为用户优化数据,规整文件大小,进行适当的排序、预计算,生成适当的索引信息和统计信息,结合计算引擎的修改,可以为这些数据生成更加高效的执行计划,大幅减少用户查询的执行时间。数据优化对用户透明,优化前后不会出现读取的数据不一致的情况。这也是数据湖的数据治理所不可或缺的功能。

查询加速

JindoTable 还有一项重磅功能,就是查询加速功能。在数仓中,数据分析总是越快越好。尤其是 Ad-Hoc 场景,对查询延迟非常敏感。现在“湖仓一体”的概念也很火,对于数据湖这种普遍使用存储计算分离场景的架构,如何尽可能减少 IO 开销,对于缩短查询时间是非常关键的。

之前介绍的 JindoTable 数据优化功能,是在存储端减少额外开销,并且通过提前的计算,为运行时优化打好基础。JindoTable 的查询加速功能则是在查询执行时,通过把计算推向存储,减少计算时整体的 IO 压力,同时利用存储端空闲的计算资源提供高效的计算,缩短整体查询时间。JindoTable 的加速服务结合修改后的各种计算引擎,可以把尽可能多的算子下推到缓存端,并且利用高效的 native 计算能力过滤大量原始数据,再把数据高效地传输给计算引擎。这样,计算引擎所需处理的数据大大减少,甚至一些计算也可以直接略过,后续的计算所需的时间自然也就大为减少。

分层存储

数据湖所存储的数据量通常增长迅速。对于传统的 Hadoop 集群,如果数据量急剧增长,所需的存储资源也要相应增加,这样会导致集群规模迅速扩大,计算资源也会变得过剩。抛开集群规模增长导致的其他问题不谈,光是运营集群的成本问题就足够让人头疼。好在公有云平台提供了对象存储的服务,我们可以按存储的数据量来付费,这在节约成本的同时,用户也不用担心 HDFS 在集群资源和数据量快速增长情况下的稳定性问题。但数据量快速增长还是会等比例的增加整体开销。

阿里云的对象存储服务 OSS,为用户提供了低频存储和归档存储,对于访问不是那么频繁的数据,如果能够转为低频或归档模式来存储,可以尽量节约成本。而一部分数据如果有频繁的访问需求,放在远离计算资源的对象存储上,又会导致计算时的 IO 出现瓶颈。JindoTable 对接数据湖中各种计算引擎,以表或分区为最小单位,统计数据的访问频次。根据用户设定的规则,JindoTable 可以告诉用户哪些表或者分区的访问频次较高,让用户可以通过 JindoTable 命令,借助 JindoFS 提供的底层支持,把这些表或者分区对应的数据缓存到计算集群内,加速查询的执行。同时,对于访问频次较低的表或者分区,用户也可以使用 JindoTable 把对应的数据转为低频或者归档存储类型,或是设置生命周期。在需要对归档数据操作的时候,可以直接用 JindoTable 对归档数据进行解冻。JindoTable 还为用户提供了元数据管理,方便用户检视表或者分区当前的存储状态。JindoTable 让用户能尽可能高效地管理自己的数据,节约成本的同时,不牺牲计算性能。

小结

对于企业来说,数据湖为各种来源的数据提供了整合的可能性。背靠丰富的云产品体系,数据湖架构可以帮助客户进一步发掘数据价值,实现企业愿景。JindoTable 在数据湖解决方案中,为用户提供数据治理和查询加速的增值功能,进一步降低用户数据入湖的门槛,帮助用户在更低的成本下,实现更高的数据价值。

原文链接
本文为阿里云原创内容,未经允许不得转载。

【数据湖加速篇】 —— 数据湖结构化数据优化与查询加速方案相关推荐

  1. 结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured)

    研究一下分布式架构的实现方式 结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured) 概念 结构化数据:即行数据,存储在数据库里, ...

  2. 结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured)...

    概念 结构化数据:即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据. 半结构化数据:介于完全结构化数据(如关系型数据库.面向对象数据库中的数据)和完全无结构的数据(如声音.图像文件等)之 ...

  3. minio 并发数_开源数据存储项目Minio:提供非结构化数据储存服务

    Minio是一个在Apache Licence 2.0下发布的对象存储服务器.官网:https://minio.io.它与Amazon S3云存储服务兼容.Minio最适合存储非结构化数据,如照片.视 ...

  4. 数据科学 IPython 笔记本 9.11 结构化数据:NumPy 的结构化数组

    9.11 结构化数据:NumPy 的结构化数组 本节是<Python 数据科学手册>(Python Data Science Handbook)的摘录. 译者:飞龙 协议:CC BY-NC ...

  5. 结构化数据(structured),半结构化数据(semi-structured),非结构化数据(unstructured)的定义和区别

    相对于结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据)而言,不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档.文本.图片.XML.HTML.各 ...

  6. 5G NGC — UDR 统一数据存储库,UDSF 非结构化数据存储功能

    目录 文章目录 目录 计算与存储分离 增强网络执行效率 增强网元容灾冗余 UDR 与 UDSF UDR UDSF 计算与存储分离 增强网络执行效率 在 4G EPC 中,用户签约信息被存储在 HSS ...

  7. 我被“非结构化数据包围了”,请求支援!

    阿里妹导读:非结构化数据的内容占据了当前数据海洋的80%.换句话来说,就是我们都被"非结构化数据"包围了.由于非结构化数据的信息量和信息的重要程度很难被界定,因此对非结构化数据的使 ...

  8. 技术20期:结构化数据与非结构化数据:有什么区别?

    查看结构化和非结构化数据.它们的主要区别以及哪种形式最能满足您的业务需求. 并非所有数据都是平等的.有些数据是结构化的,但大部分是非结构化的.结构化和非结构化数据以不同的方式获取.收集和扩展,并且每一 ...

  9. [Pytorch框架] 5.2 Pytorch处理结构化数据

    文章目录 5.2 Pytorch处理结构化数据 简介 数据预处理 定义数据集 定义模型 训练 import numpy as np import pandas as pd import torch f ...

  10. 详解非结构化数据(文档)安全管理解决方案

    随着互联网技术的日新月异,内容数据逐渐在各行业的业务中占据更重要的地位.日常的业务过程中,需要处理的大量电子文档.图片.音频.视频等,都属于内容数据范畴. 例如,某银行的无人营业网点的远程业务办理中, ...

最新文章

  1. Node.js 报语法错误 SyntaxError: Unexpected identifier
  2. PHP源码迁移到GitHub
  3. iOS 9应用开发教程之多行读写文本ios9文本视图
  4. redis 持久化性能_高性能持久消息
  5. php codeigniter ext,php – 私有服务器上CodeIgniter不正确的系统路径
  6. ewebeditor未授权:功能被禁用请先配置授权_SteamPY新功能——外区账号礼物自动领取...
  7. python generator与coroutine
  8. 如何编译生成dll文件以及如何调用dll文件
  9. 【MySQL数据库】- 多表查询
  10. CentOS Linux自动备份文件按日期备份
  11. 在电脑上显示未知发布者怎么办_Win7无法验证发行者、未知发布者的解决方法...
  12. 小米红米手机无电池24H开机完美解决方案
  13. fcntl.py模块
  14. 数据可视化:数据可视化的意义
  15. opengauss源码编译安装
  16. 三星发布四款新品,打劫你的钱包能成功吗
  17. 微信读书产品设计中的心理学
  18. TDengine 如何批量插入?
  19. Dell服务器R740设置U盘启动
  20. 【git】(task5)Git可视化工具与团队协作

热门文章

  1. mysql开窗函数over_oracle分析函数技术详解(配上开窗函数over())
  2. 大并发下程序出错_Python并发编程理论篇
  3. Java编程学习并不难,有坚持的动力与良好的心态尤为重要
  4. 包包的结构制图_15种常见领型的结构制图
  5. 静态网页托管_视频教程:如何在IPFS上托管网站!
  6. 【LeetCode笔记】124. 二叉树中的最大路径和(Java、二叉树、DFS)
  7. java项目log4j_java项目测试log4j
  8. python怎么控制速度_如何控制python的ThreadPoolExecutor的吞吐量速度?
  9. 计算机网络 --- 传输层TCP协议
  10. java进程内存一直没释放_五分钟彻底搞懂你一直没明白的Linux内存管理