大数据计算MaxCompute应该是下面哪种情况?[阿里云MaxCompute]

我这边有这样的场景,有个分区表,365个分区,每个分区有10万数据,使用upload UploadSession,上传,我想先recordWriter.close();然后所有的分区都写完,最后再commit,我疑惑的点是,recordWriter.write(record)之后是不是就已经把数据写到了云上,只是没有提交而已?还是recordWriter.write(record)之后数据再内存中,uploadSession.commit之后把内存中的数据上传到云上?大数据计算MaxCompute应该是下面哪种情况?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. 根据您的描述,您的场景是有一个包含365个分区的表格,每个分区包含约10万条数据,您使用的是MaxCompute的upload命令上传数据。
    根据MaxCompute官方文档,upload命令是一种将本地文件上传到MaxCompute表格中的命令,它支持上传多种格式的数据文件,包括文本文件、压缩文件、序列化文件等。
    在您的场景中,由于表格包含了大量的分区和数据,使用upload命令可能会比较耗时和费力。为了更高效地上传数据,您可以考虑使用MaxCompute提供的其他上传方式,例如使用Tunnel模块进行数据上传或使用MaxCompute客户端工具进行数据导入。
    Tunnel模块是MaxCompute提供的数据隧道服务,可以实现高速、可靠的数据上传和下载,支持多种数据格式和压缩方式。使用Tunnel模块进行数据上传,可以更好地利用网络带宽和计算资源,快速地上传大量数据。

  2. 在大数据计算MaxCompute中,使用UploadSession进行数据上传时,recordWriter.write(record)将数据写入内存,并没有立即将数据提交到云上。具体的数据写入和提交过程如下:

    1. recordWriter.write(record):该方法将数据写入到UploadSession的缓冲区(内存)中,并且数据会被按照指定的分区信息进行组织。

    2. recordWriter.close():当调用recordWriter.close()方法时,表示该分区的数据已经写入完毕。在关闭RecordWriter之前,您可以继续使用recordWriter.write(record)向缓冲区追加数据。

    3. uploadSession.commit() :当调用uploadSession.commit()方法时,系统会将缓冲区中的数据批量提交到云上,并按照指定的分区信息进行存储。

    因此,在调用recordWriter.write(record)之后,数据并不会立即写入云上,而是写入到内存中的缓冲区。只有在调用uploadSession.commit()时,才会将缓冲区中的数据批量上传到云上完成真正的提交操作。

    这样的设计方式可以提高数据写入的效率和性能,同时也允许您在写入数据过程中进行一些操作,例如对数据进行修改、过滤或其他处理。

  3. 应该就是你说的第一种情况。此回答整理自钉群“MaxCompute开发者社区2群”