|
1 | | -DELIMITER $$ |
2 | | - |
3 | 1 | /* |
4 | | - */ |
5 | | -DROP PROCEDURE IF EXISTS iterate_audit_range$$ |
6 | | -CREATE PROCEDURE iterate_audit_range(dstart date, dend date) |
7 | | -BEGIN |
8 | | - if dend > dstart then |
9 | | - set @dcur = dstart; |
10 | | - loop_label: LOOP |
11 | | - set @dnext = adddate(@dcur, interval 1 day); |
12 | | - |
13 | | - call update_audits_processed_for_day(@dcur); |
14 | | - |
15 | | - set @dcur = @dnext; |
16 | | - if @dcur >= dend then |
17 | | - LEAVE loop_label; |
18 | | - end if; |
19 | | - END LOOP; |
20 | | - end if; |
21 | | -END$$ |
22 | | - |
23 | | -DELIMITER ; |
24 | | - |
25 | | -DELIMITER $$ |
26 | | - |
27 | | -DROP PROCEDURE IF EXISTS update_audits_processed$$ |
28 | | -CREATE PROCEDURE update_audits_processed() |
29 | | -BEGIN |
30 | | - call iterate_audit_range( |
31 | | - ( |
32 | | - select |
33 | | - date_add(max(audit_date), INTERVAL 1 DAY) |
34 | | - from |
35 | | - audits_processed |
36 | | - ), |
37 | | - date(now()) |
38 | | - ); |
39 | | -END$$ |
40 | | - |
41 | | -DELIMITER ; |
42 | | - |
43 | | -DELIMITER $$ |
44 | | - |
45 | | -DROP PROCEDURE IF EXISTS update_audits_processed_for_day$$ |
46 | | -CREATE PROCEDURE update_audits_processed_for_day(dcur date) |
47 | | -BEGIN |
48 | | - set @dcur = dcur; |
49 | | - delete from |
50 | | - audits_processed |
51 | | - where |
52 | | - audit_date = @dcur; |
53 | | - |
54 | | - CREATE TEMPORARY TABLE IF NOT EXISTS tmp_audits_processed AS ( |
55 | | - select * from audits_processed limit 0 |
56 | | - ); |
57 | | - |
58 | | - truncate table tmp_audits_processed; |
59 | | - |
60 | | - set @interval = 5, |
61 | | - @tstart = date_add(@dcur, INTERVAL 0 HOUR), |
62 | | - @tnext = date_add(@tstart, INTERVAL @interval MINUTE), |
63 | | - @tend = date_add(@dcur, INTERVAL 1 DAY); |
64 | | - |
65 | | - loop_label: LOOP |
66 | | - insert into |
67 | | - tmp_audits_processed |
68 | | - select |
69 | | - @dcur as audit_date, |
70 | | - count(a.id) as all_files, |
71 | | - ifnull( |
72 | | - sum( |
73 | | - case |
74 | | - when a.inv_node_id in (select id from inv.inv_nodes where access_mode != 'on-line') |
75 | | - then 0 |
76 | | - else 1 |
77 | | - end |
78 | | - ), |
79 | | - 0 |
80 | | - ) as online_files, |
81 | | - ifnull( |
82 | | - sum( |
83 | | - case |
84 | | - when a.inv_node_id in (select id from inv.inv_nodes where access_mode != 'on-line') |
85 | | - then 0 |
86 | | - else full_size |
87 | | - end |
88 | | - ), |
89 | | - 0 |
90 | | - ) as online_bytes, |
91 | | - ifnull( |
92 | | - sum( |
93 | | - case |
94 | | - when a.inv_node_id in (select id from inv.inv_nodes where number in (5001, 3041, 3042)) |
95 | | - then 1 |
96 | | - else 0 |
97 | | - end |
98 | | - ), |
99 | | - 0 |
100 | | - ) as s3_files, |
101 | | - ifnull( |
102 | | - sum( |
103 | | - case |
104 | | - when a.inv_node_id in (select id from inv.inv_nodes where number in (5001, 3041, 3042)) |
105 | | - then full_size |
106 | | - else 0 |
107 | | - end |
108 | | - ), |
109 | | - 0 |
110 | | - ) as s3_bytes, |
111 | | - ifnull( |
112 | | - sum( |
113 | | - case |
114 | | - when a.inv_node_id in (select id from inv.inv_nodes where access_mode != 'on-line') |
115 | | - then 1 |
116 | | - else 0 |
117 | | - end |
118 | | - ), |
119 | | - 0 |
120 | | - ) as glacier_files, |
121 | | - ifnull( |
122 | | - sum( |
123 | | - case |
124 | | - when a.inv_node_id in (select id from inv.inv_nodes where access_mode != 'on-line') |
125 | | - then full_size |
126 | | - else 0 |
127 | | - end |
128 | | - ), |
129 | | - 0 |
130 | | - ) as glacier_bytes, |
131 | | - ifnull( |
132 | | - sum( |
133 | | - case |
134 | | - when a.inv_node_id in (select id from inv.inv_nodes where number in (2001, 2002)) |
135 | | - then 1 |
136 | | - else 0 |
137 | | - end |
138 | | - ), |
139 | | - 0 |
140 | | - ) as sdsc_files, |
141 | | - ifnull( |
142 | | - sum( |
143 | | - case |
144 | | - when a.inv_node_id in (select id from inv.inv_nodes where number in (2001, 2002)) |
145 | | - then full_size |
146 | | - else 0 |
147 | | - end |
148 | | - ), |
149 | | - 0 |
150 | | - ) as sdsc_bytes, |
151 | | - ifnull( |
152 | | - sum( |
153 | | - case |
154 | | - when a.inv_node_id in (select id from inv.inv_nodes where number in (9501, 9502)) |
155 | | - then 1 |
156 | | - else 0 |
157 | | - end |
158 | | - ), |
159 | | - 0 |
160 | | - ) as wasabi_files, |
161 | | - ifnull( |
162 | | - sum( |
163 | | - case |
164 | | - when a.inv_node_id in (select id from inv.inv_nodes where number in (9501, 9502)) |
165 | | - then full_size |
166 | | - else 0 |
167 | | - end |
168 | | - ), |
169 | | - 0 |
170 | | - ) as wasabi_bytes, |
171 | | - ifnull( |
172 | | - sum( |
173 | | - case |
174 | | - when a.inv_node_id in (select id from inv.inv_nodes where number in (5001, 3041, 3042)) |
175 | | - then 0 |
176 | | - when a.inv_node_id in (select id from inv.inv_nodes where access_mode != 'on-line') |
177 | | - then 0 |
178 | | - when a.inv_node_id in (select id from inv.inv_nodes where number in (2001, 2002)) |
179 | | - then 0 |
180 | | - when a.inv_node_id in (select id from inv.inv_nodes where number in (9501, 9502)) |
181 | | - then 0 |
182 | | - else 1 |
183 | | - end |
184 | | - ), |
185 | | - 0 |
186 | | - ) as other_files, |
187 | | - ifnull( |
188 | | - sum( |
189 | | - case |
190 | | - when a.inv_node_id in (select id from inv.inv_nodes where number in (5001, 3041, 3042)) |
191 | | - then 0 |
192 | | - when a.inv_node_id in (select id from inv.inv_nodes where access_mode != 'on-line') |
193 | | - then 0 |
194 | | - when a.inv_node_id in (select id from inv.inv_nodes where number in (2001, 2002)) |
195 | | - then 0 |
196 | | - when a.inv_node_id in (select id from inv.inv_nodes where number in (9501, 9502)) |
197 | | - then 0 |
198 | | - else full_size |
199 | | - end |
200 | | - ), |
201 | | - 0 |
202 | | - ) as other_bytes |
203 | | - from |
204 | | - inv.inv_audits a |
205 | | - inner join inv.inv_files f |
206 | | - on |
207 | | - f.id = a.inv_file_id |
208 | | - and |
209 | | - f.inv_object_id = a.inv_object_id |
210 | | - and |
211 | | - f.inv_version_id = a.inv_version_id |
212 | | - where |
213 | | - verified >= @tstart |
214 | | - and |
215 | | - verified < @tnext |
216 | | - ; |
217 | | - |
218 | | - set @tstart = @tnext, |
219 | | - @tnext = date_add(@tstart, INTERVAL @interval MINUTE); |
220 | | - |
221 | | - if @tstart >= @tend then |
222 | | - LEAVE loop_label; |
223 | | - end if; |
224 | | - END LOOP; |
225 | | - |
226 | | - insert into audits_processed |
227 | | - select |
228 | | - audit_date, |
229 | | - sum(all_files), |
230 | | - sum(online_files), |
231 | | - sum(online_bytes), |
232 | | - sum(s3_files), |
233 | | - sum(s3_bytes), |
234 | | - sum(glacier_files), |
235 | | - sum(glacier_bytes), |
236 | | - sum(sdsc_files), |
237 | | - sum(sdsc_bytes), |
238 | | - sum(wasabi_files), |
239 | | - sum(wasabi_bytes), |
240 | | - sum(other_files), |
241 | | - sum(other_bytes) |
242 | | - from |
243 | | - tmp_audits_processed |
244 | | - group by |
245 | | - audit_date; |
246 | | - |
247 | | -END$$ |
248 | | - |
249 | | -DELIMITER ; |
| 2 | +See https://github.com/CDLUC3/merritt-docker/blob/main/mrt-services/mysql/init.sql for stored procedure definitions |
| 3 | +*/ |
0 commit comments