Alo*_*ngh 2 amazon-web-services amazon-redshift
我们正在将实时数据传输到 Redshift。瓶颈是没有可以并发运行的表加载。目前,我们每 15 分钟运行超过 1000 个负载。
但我们希望根据用户使用这些表的频率来减少这个数字。请建议我们如何在 Redshift 中获取此信息。
这个由awslabs开源的视图可以用来查询最常查询的表。
CREATE OR REPLACE VIEW admin.v_get_table_scan_frequency
AS
SELECT
database,
schema AS schemaname,
table_id,
"table" AS tablename,
size,
sortkey1,
NVL(s.num_qs,0) num_qs
FROM svv_table_info t
LEFT JOIN (SELECT
tbl, perm_table_name,
COUNT(DISTINCT query) num_qs
FROM
stl_scan s
WHERE
s.userid > 1
AND s.perm_table_name NOT IN ('Internal Worktable','S3')
GROUP BY
tbl, perm_table_name) s ON s.tbl = t.table_id
AND t."schema" NOT IN ('pg_internal')
ORDER BY 7 desc;
Run Code Online (Sandbox Code Playgroud)
\d admin.v_get_table_scan_frequency
Column | Type | Modifiers
------------+--------+-----------
database | text |
schemaname | text |
table_id | oid |
tablename | text |
size | bigint |
sortkey1 | text |
num_qs | bigint |
Run Code Online (Sandbox Code Playgroud)
select * from admin.v_get_table_scan_frequency order by num_qs;
Run Code Online (Sandbox Code Playgroud)
database | schemaname | table_id | tablename | size | sortkey1 | num_qs
-----------------+------------+----------+------------------------------------------+-------+---------------+--------
db | product | 1 | table1 | 92 | AUTO(SORTKEY) | 13448
db | product | 2 | table2 | 180 | AUTO(SORTKEY) | 13389
Run Code Online (Sandbox Code Playgroud)
在 Prometheus 中保存此查询的时间序列数据可以帮助找到每个表随时间变化的速率和频率趋势。基于此,我们可以决定在 Redshift 中刷新数据的频率。
| 归档时间: |
|
| 查看次数: |
2392 次 |
| 最近记录: |