DataWorks百问百答34:mongoDB同步odps实践时如何使用时间戳筛选数据?

简介: mongoDB同步odps实践及使用时间戳筛选数据

情景:mongoDB数据集成任务query配置参数中不能支持.valueOf()这个方法(形如"query":"{'operationTime':{'$gte':ISODate('${last_day}T00:00:00.424Z.valueOf()')}}" bson解析不出)


以下我们使用赋值节点+数据集成节点进行时间戳值的实现:

1.新建赋值节点,并向下游传出unixtime时间戳数值:(赋值节点内选择odps sql节点或者shell节点均可实现向下游传值。更多赋值节点内容请参见:https://help.aliyun.com/document_detail/137534.html?spm=a2c4g.11186631.6.778.62b06158yTpLAN
dataworks34-4.png


这样我们使用unix_timestamp函数将设置的定时周期的时间转成了一个时间戳并传向下游数据集成节点。关于参数的配置、使用、如何获取到想要的时间值,请参见文档链接:https://help.aliyun.com/document_detail/137548.html?spm=5176.11065259.1996646101.searchclickresult.73481a65zOfzvM

2.下游数据集成节点配置本节点输入参数来接赋值节点的传入的值:(这里我们使用input(名称可自定义))
调度配置引入上游赋值:
dataworks34-3.png


这样就可以接到上游赋值节点传入的时间戳并在数据集成json配置内部使用参数替换需要用到的时间戳。

3.本数据集成任务的功能:查询出mongoDB中u6字段值大于传入的时间戳的值后将数据同步到odps表中。
odps表结构:字段类型、名称等均可自定义
(create table mongo_uni_odp3(userId string,uclass string,name STRING ,age bigint,email string,birthday string,datastatus STRING,u6 string);)


mongoDB数据结构:
dataworks34-2.png


json配置一览:
dataworks34-1.png




完整的数据集成配置json:mongoDB==>odps
{
"type": "job",
"steps": [
{
"stepType": "mongodb",

"parameter": {
"datasource": "wpw_test_mongo",
"query":"{'u6':{'$gte':'${input}'}}",


"column": [
{
"name": "userId",
"type": "string"
},
{
"name": "uclass",
"type": "string"
},
{
"name": "name",
"type": "string"
},
{
"name": "age",
"type": "int"
},
{
"name": "email",
"type": "string"
},
{
"name": "birthday",
"type": "string"
},
{
"name": "datastatus",
"type": "string"
},
{
"name": "u6",
"type": "string"
}
],
"collectionName": "wpw_test_collec"
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "odps",
"parameter": {
"partition": "",
"truncate": true,
"datasource": "odps_first",
"column": [
"userId",
"uclass",
"name",
"age",
"email",
"birthday",
"datastatus",
"u6"
],
"emptyAsNull": false,
"table": "mongo_uni_odp3"
},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"throttle": false,
"concurrent": 1
}
}
}

任务运行后即可在odps表中查看同步的数据了。

DataWorks百问百答历史记录 请点击这里查看>>

更多DataWorks技术和产品信息,欢迎加入【DataWorks钉钉交流群】

相关实践学习
基于Hologres轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
相关文章
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB写入数据的过程
在MongoDB数据更新时,WiredTiger存储引擎通过预写日志(Journal)机制先将更新写入日志文件,再通过检查点操作将日志中的操作刷新到数据文件,确保数据持久化和一致性。检查点定期创建,缩短恢复时间,并保证异常终止后可从上一个有效检查点恢复数据。视频讲解及图示详细说明了这一过程。
340 23
【赵渝强老师】MongoDB写入数据的过程
|
存储 NoSQL MongoDB
数据的存储--MongoDB文档存储(二)
数据的存储--MongoDB文档存储(二)
345 2
|
运维 监控 NoSQL
【MongoDB 复制集秘籍】Secondary 同步慢怎么办?深度解析与实战指南,让你的数据库飞速同步!
【8月更文挑战第24天】本文通过一个具体案例探讨了MongoDB复制集中Secondary成员同步缓慢的问题。现象表现为数据延迟增加,影响业务运行。经分析,可能的原因包括硬件资源不足、网络状况不佳、复制日志错误等。解决策略涵盖优化硬件(如增加内存、升级CPU)、调整网络配置以减少延迟以及优化MongoDB配置(例如调整`oplogSize`、启用压缩)。通过这些方法可有效提升同步效率,保证系统的稳定性和性能。
476 4
|
存储 JSON NoSQL
微服务——MongoDB的数据模型
MongoDB采用文档(document)作为最小存储单位,类似关系型数据库中的行,使用BSON(Binary-JSON)格式存储数据。BSON是JSON的二进制扩展,支持内嵌文档和数组,新增了如Date、BinData等特殊数据类型,具有轻量、高效、可遍历的特点,适合非结构化与结构化数据存储。其灵活性高,但空间利用率略低。BSON数据类型包括string、integer、boolean等基本类型及date、object id等扩展类型。
344 0
|
NoSQL MongoDB 数据库
使用NimoShake将数据从AWS DynamoDB迁移至阿里云MongoDB
使用NimoShake将数据从AWS DynamoDB迁移至阿里云MongoDB
|
存储 NoSQL 关系型数据库
数据的存储--MongoDB文档存储(一)
数据的存储--MongoDB文档存储(一)
772 3
|
C# UED 开发者
WPF与性能优化:掌握这些核心技巧,让你的应用从卡顿到丝滑,彻底告别延迟,实现响应速度质的飞跃——从布局到动画全面剖析与实例演示
【8月更文挑战第31天】本文通过对比优化前后的方法,详细探讨了提升WPF应用响应速度的策略。文章首先分析了常见的性能瓶颈,如复杂的XAML布局、耗时的事件处理、不当的数据绑定及繁重的动画效果。接着,通过具体示例展示了如何简化XAML结构、使用后台线程处理事件、调整数据绑定设置以及利用DirectX优化动画,从而有效提升应用性能。通过这些优化措施,WPF应用将更加流畅,用户体验也将得到显著改善。
1622 1
|
监控 NoSQL 大数据
【MongoDB复制集瓶颈】高频大数据写入引发的灾难,如何破局?
【8月更文挑战第24天】在MongoDB复制集中,主节点处理所有写请求,从节点通过复制保持数据一致性。但在大量高频数据插入场景中,会出现数据延迟增加、系统资源过度消耗、复制队列积压及从节点性能不足等问题,影响集群性能与稳定性。本文分析这些问题,并提出包括优化写入操作、调整写入关注级别、采用分片技术、提升从节点性能以及持续监控调优在内的解决方案,以确保MongoDB复制集高效稳定运行。
563 2
|
NoSQL 安全 MongoDB
【MongoDB深度揭秘】你的更新操作真的安全了吗?MongoDB fsync机制大起底,数据持久化不再是谜!
【8月更文挑战第24天】MongoDB是一款备受欢迎的NoSQL数据库,以其灵活的文档模型和强大的查询能力著称。处理关键业务数据时,数据持久化至关重要。本文深入探讨MongoDB的写入机制,特别是更新操作时的fsync行为。MongoDB先将数据更新至内存以提升性能,而非直接写入磁盘。fsync的作用是确保数据从内存同步到磁盘,但MongoDB并非每次更新后都立即执行fsync。通过设置不同的写入关注级别(如w:0、w:1和w:majority),可以平衡数据持久性和性能。
257 1
|
C# 开发者 Windows
全面指南:WPF无障碍设计从入门到精通——让每一个用户都能无障碍地享受你的应用,从自动化属性到焦点导航的最佳实践
【8月更文挑战第31天】为了确保Windows Presentation Foundation (WPF) 应用程序对所有用户都具备无障碍性,开发者需关注无障碍设计原则。这不仅是法律要求,更是社会责任,旨在让技术更人性化,惠及包括视障、听障及行动受限等用户群体。
491 0

相关产品

  • 大数据开发治理平台 DataWorks
  • 推荐镜像

    更多