我将把nginx日志存储在simpledb或bigtable中。
我想知道simpledb或bigtable是否支持正则表达式查询(如mongodb中)
关于Bigtable,它确实支持regex。我相信@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.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,它可以在某些文本之前/之后使用"%",以允许startswith或endswith类型的操作。
对于这两种产品,如果需要提前执行预期之外的查询,其预期使用模式更多的是对数据执行map reduce类型的操作,并在应用程序级别将regexp过滤器应用于生成的数据集,而不是试图在DB中提供它。
或者,如果您预先了解您的regexp,则可以预先应用这些regexp并将结果存储在任何数据存储中。