javascript - 编写正则表达式过滤器来解析以反向时间戳顺序存储的一系列日期

标签 javascript node.js regex bigtable google-cloud-bigtable

我必须使用正则表达式过滤器在 Google Cloud BigTable 中按日期解析一系列行键,其中行键中的每个日期都根据 Unix 纪元(1 月 1 日 00:00:00)存储为反向时间戳,1970)。

例如,给定 Date d = "2018-03-09T10:48:00.000Z" ,自 Unix 纪元以来的 MS 日期是 d.valueOf() = 1520592480000 。在 JavaScript 中,允许的最大整数是 Number.MAX_SAFE_INTEGER = 9007199254740991 ,因此我们通过求差来计算d的反向日期r: var r = Number.MAX_SAFE_INTEGER - d哪里r = 9005678662260991

给定两个反向日期r1r2,如何在RE2中编写正则表达式来获取此范围内的所有日期字符串?我正在尝试使用 NodeJS(有限的文档)在 BigTable 中使用反向时间戳行键查找某个范围内的所有日期,因此,如果您知道有比这更简单的解决方案,我也会接受这些!

谢谢

最佳答案

Javascript 最大整数的解决方法是使查找不太自然和高效。

我建议以 Javascript 和 Bigtable 都易于理解的方式表达行,同时保持自然顺序和过滤属性。

如果您需要反转以防止热点,您可以尝试仅反转部分时间戳(10 秒?)或在 key 中添加盐(您可以在此处查看“加盐”部分https://cloud.google.com/bigtable/docs/schema-design-time-series)。

关于javascript - 编写正则表达式过滤器来解析以反向时间戳顺序存储的一系列日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49306861/

相关文章:

javascript - 使用 Bluebird Promise 修复 Node.js 中的范围/上下文错误

java - 使用正则表达式拆分字符串\w\w*?\w+?

javascript - jQuery live 函数的简单版本

javascript - 编写一个接受两个整数并显示较大值的 JavaScript 程序。

javascript - 多个输入的平均值

javascript - 类似单选按钮行为的 Vue.js 组件

node.js - Webpack 帮助 - 将热加载和源映射添加到 React/Node 项目

javascript - 在 node.js selenium-webdriver 中打开一个新选项卡

java - 如何计算字符串中与给定正则表达式匹配的字符数

regex - 用正则表达式替换字符串中的 [ 和 ]