DataWorks离线同步,数据源是tablestore,主键区间的配置是这样,但是没有按期望的只同步 1626230917753 到 1655371956798的这部分数据,把所有数据都同步过来了?"range": {
"split": null,
"end": [
{
"type": "INT",
"value": "157918"
},
{
"type": "INF_MAX"
},
{
"type": "INT",
"value": "1655371956798"
}
],
"begin": [
{
"type": "INT",
"value": "157918"
},
{
"type": "INF_MIN"
},
{
"type": "INT",
"value": "1626230917753"
}
]
}
使用DataWorks进行TableStore表的离线同步,并且想通过主键区间来控制只同步一部分数据。TableStore(表格存储)的主键是由多个主键列组成的有序组合,主键区间配置应该是基于每个主键列的值来进行划分。
在你提供的JSON配置片段中,主键区间定义的似乎是三个主键列,分别对应三个value
值,但实际上并未清晰地说明这三个值分别对应哪个主键列。此外,INF_MIN
和 INF_MAX
分别代表最小值和最大值,通常用于表示某一列的范围边界。
为了准确地按预期范围同步数据,你需要确保主键区间的配置符合TableStore主键列的顺序和类型,并且区间定义合理。假设你的主键列顺序和类型如下:
正确的配置应该类似下面这样:
"range": {
"split": null,
"end": [
{"type": "INT", "value": "分区键的最大值"},
{"type": "INF_MAX"},
{"type": "TIMESTAMP", "value": "1655371956798"}
],
"begin": [
{"type": "INT", "value": "分区键的最小值"},
{"type": "INF_MIN"},
{"type": "TIMESTAMP", "value": "1626230917753"}
]
}
请务必替换为实际的分区键的最小值和最大值。同时,请再次检查你的主键列顺序和类型是否与配置相符,确保范围定义正确。
根据您提供的配置信息,您的主键区间配置如下:
"range": {
"split": null,
"end": [
{
"type": "INT",
"value": "157918"
},
{
"type": "INF_MAX"
},
{
"type": "INT",
"value": "1655371956798"
}
],
"begin": [
{
"type": "INT",
"value": "157918"
},
{
"type": "INF_MIN"
},
{
"type": "INT",
"value": "1626230917753"
}
]
}
根据您的配置,您希望同步的数据范围是从 1626230917753
到 1655371956798
。然而,您的配置中存在一些问题,导致无法正确指定数据范围。
问题出在 end
和 begin
部分的第三个元素上。根据您的配置,end
部分的第三个元素的类型是 INT
,而 begin
部分的第三个元素的类型是 INF_MIN
。这导致了无法正确指定数据范围。
要解决这个问题,您需要将 end
部分的第三个元素的类型改为 INF_MAX
,并将 begin
部分的第三个元素的类型改为 INT
。修改后的配置如下:
"range": {
"split": null,
"end": [
{
"type": "INT",
"value": "157918"
},
{
"type": "INF_MAX"
},
{
"type": "INT",
"value": "1655371956798"
}
],
"begin": [
{
"type": "INT",
"value": "157918"
},
{
"type": "INF_MIN"
},
{
"type": "INT",
"value": "1626230917753"
}
]
}
这样修改后,您的配置应该能够正确指定数据范围,并只同步 1626230917753
到 1655371956798
这部分数据。
参考文档里的参数描述 修改看下呢ots reader多个主键如何指定部分数据抽取建全局二级索引https://help.aliyun.com/zh/tablestore/developer-reference/global-secondary-index-3?spm=a2c4g.11186623.0.i12
https://help.aliyun.com/zh/dataworks/user-guide/tablestore-data-source?spm=a2c4g.11186623.0.i1#task-2314772
,此回答整理自钉群“DataWorks交流群(答疑@机器人)”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。