大文件上传功能在标签服务的简单应用和代码实现

这篇具有很好参考价值的文章主要介绍了大文件上传功能在标签服务的简单应用和代码实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

各位看官大家好,今天给大家分享的又是一篇实战文章,希望大家能够喜欢。

目前「袋鼠云客户数据洞察平台」标签服务的群组按种类划分,可以分为三大类,分别是实时群组、动态群组以及静态群组。如果按创建方式划分则有两种,分别是通过圈群的方式创建以及通过上传本地文件进行维度匹配的方式创建得到本地群组,其中本地群组属于静态群组。

除了本地群组外的其他群组目前都是采用圈群的方式生成匹配 SQL,然后执行相应的 SQL 得到相应查询维度的数据并入库到群组表,这种方式比较方便,可以快速得到一个用户期望的群组。

大文件上传功能在标签服务的简单应用和代码实现

但是有那么一种场景,假设想要设置的条件很分散,通过圈群配置的时候比较复杂,那么只能通过上传文件的方式进行匹配,这就需要用户上传本地文件,通过指定匹配维度的方式来生成本地群组。

大文件上传功能在标签服务的简单应用和代码实现

如果用户上传的本地文件很小,那么比较简单,按单个文件直接上传解析即可。如果用户上传的文件很大,有50M,那么就需要采用分片的方式进行上传,本文和大家分享一下这两种文件上传的代码实现。

小文件上传的实现

小文件上传的主要流程包括将文件上传到服务器,并获得文件的编码格式,文件上传完毕后,异步解析文件并得到本地群组。

将文件上传到 HDFS 并保存原始文件到 SFTP,上传到 HDFS 之后,通过 SQL 来与实体对应的大宽表进行数据匹配,最终生成本地群组。

大文件上传功能在标签服务的简单应用和代码实现

小文件直接上传即可,代码如下,上传完成后,获取文件的编码格式,用于后续的文件解析。

大文件上传功能在标签服务的简单应用和代码实现

大文件上传的实现

前端将大文件按指定大小分片,并计算原始文件的 md5 和每个分片文件的 md5,分别用于文件校验以及分片文件断点续传。接口入参代码设计如下:

大文件上传功能在标签服务的简单应用和代码实现

大文件分片实现部分核心代码如下:

大文件上传功能在标签服务的简单应用和代码实现

分片文件重新在服务器整合为一个大文件的整体代码如下:

大文件上传功能在标签服务的简单应用和代码实现
大文件上传功能在标签服务的简单应用和代码实现

单个分片的数据接收并写入代码如下:

大文件上传功能在标签服务的简单应用和代码实现

当检测到上传的文件是最后一个分片文件的时候,待分片数据写入完成后,需要对服务器上的文件进行 md5 校验来保证文件数据的一致性。

当文件上传到服务器完成后,需要将文件上传到 HDFS 以及SFTP,代码如下:

大文件上传功能在标签服务的简单应用和代码实现
大文件上传功能在标签服务的简单应用和代码实现

最终得到的本地群组如下:

大文件上传功能在标签服务的简单应用和代码实现
大文件上传功能在标签服务的简单应用和代码实现

《数栈产品白皮书》:https://www.dtstack.com/resources/1004?src=szsm

《数据治理行业实践白皮书》下载地址:https://www.dtstack.com/resources/1001?src=szsm

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=szbky

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术qun」,交流最新开源技术信息,qun号码:30537511,项目地址:https://github.com/DTStack文章来源地址https://www.toymoban.com/news/detail-482077.html

到了这里,关于大文件上传功能在标签服务的简单应用和代码实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包