开发者社区 > 大数据与机器学习 > 大数据计算 MaxCompute > 正文

大数据计算MaxCompute读取外部表速度非常慢,有什么方法可以提升效率么?

大数据计算MaxCompute读取外部表(数据在oss gz压缩)速度非常慢,有什么方法可以提升效率么?

展开
收起
真的很搞笑 2023-11-19 07:48:44 97 0
3 条回答
写回答
取消 提交回答
  • 那有没有其他的可以筛选的列了,设置个条件,一部分一部分的写入,看一下时间。数据量大的话时间是会多一些
    c79133d9279f50b4668dc75d9a04b1bd.png
    可以把这里的worker调多一些,没办法直接设置数量,可以通过odps.stage.mapper.mem和odps.stage.mapper.split.size间接控制一下,可以参考这个文档配置:https://help.aliyun.com/zh/maxcompute/user-guide/flag-parameters?spm=a2c4g.11186623.0.i50#concept-2278178,此回答整理自钉群“MaxCompute开发者社区2群”

    2023-11-19 22:39:03
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    如果MaxCompute读取外部表的速度较慢,可以尝试以下几种方法来提升读取速度:

    1. 减少读取的字段数量。避免读取不必要的字段,可以节省内存和CPU资源,加快读取速度。
    2. 增加分区数量。将大表分成多个小表,每个小表都有不同的分区,可以更快地定位和检索数据。
    3. 使用索引。建立合适的索引,可以帮助MaxCompute快速查找所需数据。
    4. 合理分配资源。调整MaxCompute的工作节点和任务优先级,使更多的资源用于读取外部表。
    5. 使用数据预热功能。预先将数据加载到MaxCompute集群,缩短数据的读取时间。
    2023-11-19 14:39:13
    赞同 展开评论 打赏
  • 数据计算MaxCompute读取外部表(数据在OSS GZ压缩)速度慢,可以尝试以下方法提高效率:

    调整并发度:适当增加并发度可以同时读取更多数据,提高读取速度。但需要注意,并发度过高可能会增加系统负载和资源消耗。
    调整批量大小:适当增加批量大小可以减少网络传输次数,提高读取速度。但批量大小过大可能会浪费系统资源,增加任务执行时间。需要根据实际情况进行调整。
    使用异步方式:使用异步方式读取数据可以避免阻塞其他任务的执行,提高整体任务效率。但需要注意,异步方式可能会导致数据丢失或重复写入。需要根据实际情况进行选择。
    优化OSS存储类型:根据数据特点选择合适的OSS存储类型可以提高读取速度和降低存储成本。例如,对于需要频繁访问的数据,可以选择标准存储类型;对于不经常访问的数据,可以选择低频访问存储类型。
    优化MaxCompute查询语句:优化查询语句可以提高数据的读取速度和减少数据传输量。例如,使用分区表、索引等方式可以加速查询操作。
    调整单个Mapper读取数据量的大小:在读取结构化数据时,可以通过设置odps.sql.mapper.split.size参数来调整每个Mapper读取Table数据的大小,以加速SQL执行。单位是MB。
    将OSS大文件拆分为小文件:如果OSS外部表路径下的OSS文件只有一个,由于压缩方式下的非结构化数据不支持拆分,所以只能生成一个Mapper,导致处理速度较慢。建议在OSS对应的外部表路径下,将OSS大文件拆分为小文件,从而增加读取外部表生成的Mapper数量,提升读取速度。

    以上方法仅供参考,建议根据实际情况选择适合的方法进行优化。

    2023-11-19 08:16:31
    赞同 展开评论 打赏

MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 相关电子书

    更多
    Data+AI时代大数据平台应该如何建设 立即下载
    大数据AI一体化的解读 立即下载
    极氪大数据 Serverless 应用实践 立即下载