文档首页/ 数据湖探索 DLI/ 产品介绍/ 数据湖探索简介
更新时间:2024-09-27 GMT+08:00

数据湖探索简介

什么是数据湖探索

数据湖探索(Data Lake Insight,简称DLI)是完全兼容Apache SparkApache FlinkTrino生态,提供一站式的流处理、批处理、交互式分析的Serverless融合处理分析服务。用户不需要管理任何服务器,即开即用。

DLI支持标准SQL/Spark SQL/Flink SQL,支持多种接入方式,并兼容主流数据格式。数据无需复杂的抽取、转换、加载,使用SQL或程序就可以对云上RDSDWSCSSOBSECS自建数据库以及线下数据库的异构数据进行探索。

功能介绍

DLI用户可以通过可视化界面、Restful API、JDBC、Beeline等多种接入方式对云上CloudTable、RDS和DWS等异构数据源进行查询分析,数据格式兼容CSV、JSON、Parquet和ORC主流数据格式。

  • 三大基本功能
    • SQL作业支持SQL查询功能:可为用户提供标准的SQL语句。具体内容请参考《数据湖探索SQL语法参考》
    • Flink作业支持Flink SQL在线分析功能:支持Window、Join等聚合函数、地理函数、CEP函数等,用SQL表达业务逻辑,简便快捷实现业务。具体内容请参考《数据湖探索SQL语法参考》
    • Spark作业提供全托管式Spark计算特性:用户可通过交互式会话(session)和批处理(batch)方式提交计算任务,在全托管Spark队列上进行数据分析。具体内容请参考《数据湖探索API参考》
  • 多数据源分析:
    • Spark跨源连接:可通过DLI访问CloudTable,DWS,RDS和CSS等数据源。具体内容请参考《数据湖探索用户指南》
    • Flink跨源支持与多种云服务连通,形成丰富的流生态圈。数据湖探索的流生态分为云服务生态和开源生态:
      • 云服务生态:数据湖探索在Flink SQL中支持与其他服务的连通。用户可以直接使用SQL从这些服务中读写数据。如DIS、OBS、CloudTable、MRS、RDS、SMN、DCS等。
      • 开源生态:通过增强型跨源连接建立与其他VPC的网络连接后,用户可以在数据湖探索的租户授权的队列中访问所有Flink和Spark支持的数据源与输出源,如Kafka、Hbase、ElasticSearch等。

      具体内容请参见《数据湖探索开发指南》

  • 存算分离

    用户将数据存储到OBS后,DLI可以直接和OBS对接进行数据分析。存算分离的架构下,使得存储资源和计算资源可以分开申请和计费,降低了成本并提高了资源利用率。

    存算分离场景下,DLI支持OBS在创建桶时数据冗余策略选择单AZ或者多AZ存储,两种存储策略区别如下:

    • 选择多AZ存储,数据将冗余存储至多个AZ中,可靠性更高。选择多AZ存储的桶,数据将存储在同一区域的多个不同AZ。当某个AZ不可用时,仍然能够从其他AZ正常访问数据,适用于对可靠性要求较高的数据存储场景。建议优选使用多AZ存储的策略。
    • 选择单AZ存储,数据仅存储在单个AZ中,但相比多AZ更加便宜。
  • 弹性资源池

    弹性资源池后端采用CCE集群的架构,支持异构,对资源进行统一的管理和调度。详细内容可以参考用户指南的弹性资源池

    图1 弹性资源池架构图

    弹性资源池的优势主要体现在以下几个方面:

    • 统一资源管理
      • 统一管理内部多集群和调度作业,规模可以到百万核级别。
      • 多AZ部署,支持跨AZ高可用。
    • 租户资源隔离

      不同队列之间资源隔离,减少队列之间的相互影响。

    • 分时按需弹性
      • 分钟级别扩缩容,从容应对流量洪峰和资源诉求。
      • 支持分时设置队列优先级和配额,提高资源利用率。
    • 作业级资源隔离(暂未实现,后续版本支持)

      支持独立Spark实例运行SQL作业,减少作业间相互影响。

    • 自动弹性(暂未实现,后续版本支持)

      基于队列负载和优先级实时自动更新队列配额。

    弹性资源池解决方案主要解决了以下问题和挑战。

    维度

    原有队列,无弹性资源池时

    弹性资源池

    扩容时长

    手工扩容时间长,扩容时长在分钟级别

    不需要手工干预,秒级动态扩容。

    资源利用率

    不同队列之间资源不能共享。

    例如:队列1当前还剩余10CU资源,队列2当前负载高需要扩容时,队列2不能使用队列1中的资源,只能单独对队列1进行扩容。

    添加到同一个弹性资源池的多个队列,CU资源可以共享,达到资源的合理利用。

    配置跨源时,必须为每个队列分配不重合的网段,占用大量VPC网段。

    多队列通过弹性资源池统一进行网段划分,减少跨源配置的复杂度。

    资源调配

    多个队列同时扩容时不能设置优先级,在资源不够时,会导致部分队列扩容申请失败。

    您可以根据当前业务波峰和波谷时间段,设置各队列在弹性资源池中的优先级,保证资源的合理调配。

  • BI工具

    对接永洪BI:与永洪BI对接实现数据分析。具体内容请参考《数据湖探索开发指南》

DLI核心引擎:Spark+Flink+Trino

  • Spark是用于大规模数据处理的统一分析引擎,聚焦于查询计算分析。DLI在开源Spark基础上进行了大量的性能优化与服务化改造,不仅兼容Apache Spark生态和接口,性能较开源提升了2.5倍,在小时级即可实现EB级数据查询分析。
  • Flink是一款分布式的计算引擎,可以用来做批处理,即处理静态的数据集、历史的数据集;也可以用来做流处理,即实时地处理一些实时数据流,实时地产生数据的结果。DLI在开源Flink基础上进行了特性增强和安全增强,提供了数据处理所必须的Stream SQL特性。
  • Trino(原PrestoSQL)是提供交互式查询分析能力的开源分布式SQL查询引擎,具备高性能、低延迟的查询处理能力,支持在大规模数据存储中进行数据查询和分析。

DLI服务架构:Serverless

DLI是无服务器化的大数据查询分析服务,其优势在于:

  • 按量计费:真正的按使用量(扫描量/CU时)计费,不运行作业时0费用。
  • 自动扩缩容:根据业务负载,对计算资源进行预估和自动扩缩容。

如何访问DLI

云服务平台提供了Web化的服务管理平台,既可以通过管理控制台和基于HTTPS请求的API(Application programming interface)管理方式来访问DLI,又可以通过JDBC客户端连接DLI服务端。

  • 管理控制台方式

    提交SQL作业、Spark作业或Flink作业,均可以使用管理控制台方式访问DLI服务。

    登录管理控制台,从主页选择“产品”>“EI企业智能”>“数据湖探索”。