雪茄克搜索 优化旨在找到“灰色地带的危急情况”,而数据集则旨在减少所交数据,而不是找到少量的数据。
I have (at least) two use cases where Search Optimisation service and Clustering worked.
我有1.3个TB表,有数十亿分行,80%的查询数据本月,50%在本周内。 在剩余的20%中,多数数据为月份或15年前的数据。
一组钥匙将数据按交易日期进行实际分类,对90%的案件的询问则在秒钟内进行。 然而,分组工作做得很好,因为大多数查询都包含一种过滤器,如:
where TRANSACTION_DATE between :START and :END;
典型的询问使成千上万甚至数十万人从数十亿人返回。
另一张表格(TB的大小)询问了如何利用平等搜查混杂钥匙。 与以往使用案例不同的是,分析家在整个历史中(20亿分之十)寻求浏览,而典型的WHERE条款认为:
where AGE_GROUP = ‘GEN-Z’
and INCOME_BRACKET = :INCOME
and REGION = :REGION
and GENDER = ‘MALE’
and M_STATUS in (‘MARRIED’, ‘COHABITING’)
要点是:
- Equality clauses not between or GREATER THAN
- Queries across the entire table
- Fetching a small number of rows relative to the number of micro partitions.
使用案例1(筛选)可以退回10万个牢房,但由于数据既被问,又(更重要的是)由国务司储存,大多数查询都涉及大约10个微分部分。 所有这些都是“共同的”。
Use case 2 Search Optimisation service, typically returned < 1,000 rows (from 70,000 micro partitions), but these were from across the entire table history.
更有选择性,反应速度越快。
I've written a blog post about my experiences: https://www.analytics.today/blog/snowflake-search-optimization-service-best-practices
希望这一帮助。