【发布时间】:2011-09-18 12:28:41
【问题描述】:
我打算将 nginx 日志存储在 simpledb 或 bigtable 中。
我想知道 simpledb 或 bigtable 是否支持正则表达式查询(如在 mongodb 中)
【问题讨论】:
我打算将 nginx 日志存储在 simpledb 或 bigtable 中。
我想知道 simpledb 或 bigtable 是否支持正则表达式查询(如在 mongodb 中)
【问题讨论】:
关于 Bigtable,它确实支持正则表达式。我相信@timmers 正确地假设海报指的是 AppEngine 存储,因为 Cloud Bigtable 在 2011 年不可用,但现在 Cloud Bigtable 是公开可用的,我想确保搜索这个的人知道它是受支持的:https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigtable/data/v2/models/Filters.ValueFilter.html#regex-java.lang.String-
【讨论】:
这里的简单答案对于 AppEngine 或 SimpleDB 来说都不是。
Appengine 的查询相对受限AppEngine java query documentation,只能过滤使用以下运算符的查询:-
Query.FilterOperator.LESS_THAN
Query.FilterOperator.LESS_THAN_OR_EQUAL
Query.FilterOperator.EQUAL
Query.FilterOperator.GREATER_THAN
Query.FilterOperator.GREATER_THAN_OR_EQUAL
Query.FilterOperator.NOT_EQUAL
Query.FilterOperator.IN (equal to any of the values in the provided list)
SimpleDB 的查询稍微复杂一些,但只能延伸到像 Amaozn SimpleDB Query Documentation 这样的旧式 SQL,它可以在某些文本之前/之后使用 '%' 以允许开始或结束类型操作。
对于任何一种产品,如果需要执行事先没有预料到的查询,则预期的使用模式更多是对数据执行 map-reduce 类型的操作,并在应用程序级别对结果数据集应用正则表达式过滤器,而不是而不是尝试在数据库中提供它。
或者,如果您预先知道您的正则表达式,您可以预先应用您的正则表达式并将结果存储在任何数据存储中。
【讨论】: