Skip to content

Commit eb3f2a1

Browse files
authored
[b/404462380] Filter out metrics of deleted objects (#802)
1 parent 03fa572 commit eb3f2a1

File tree

1 file changed

+61
-1
lines changed
  • dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/snowflake

1 file changed

+61
-1
lines changed

dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/snowflake/SnowflakePlanner.java

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,15 @@ ImmutableList<Task<?>> generateLiteSpecificQueries() {
9898
builder.add(operationStartsTask());
9999
builder.add(warehouseEventsHistoryTask());
100100
builder.add(warehouseMeteringTask());
101+
builder.add(storageMetricsLiteTask());
101102

102-
for (AssessmentQuery item : generateAssessmentQueries()) {
103+
ImmutableList<AssessmentQuery> liteAssessmentQueries =
104+
ImmutableList.of(
105+
AssessmentQuery.createShow("WAREHOUSES", Format.WAREHOUSES, LOWER_UNDERSCORE),
106+
AssessmentQuery.createShow("EXTERNAL TABLES", Format.EXTERNAL_TABLES, LOWER_UNDERSCORE),
107+
AssessmentQuery.createShow("FUNCTIONS", Format.FUNCTION_INFO, LOWER_UNDERSCORE));
108+
109+
for (AssessmentQuery item : liteAssessmentQueries) {
103110
String query = String.format(item.formatString, view, /* an empty WHERE clause */ "");
104111
String zipName = item.zipEntryName;
105112
Task<?> task = new JdbcSelectTask(zipName, query).withHeaderTransformer(item.transformer());
@@ -193,6 +200,59 @@ Task<?> reportDateRangeTask() {
193200
return new LiteTimeSeriesTask("report_date_range.csv", query, header);
194201
}
195202

203+
Task<?> storageMetricsLiteTask() {
204+
String selectList =
205+
String.join(
206+
", ",
207+
"table_catalog",
208+
"table_schema_id",
209+
"table_schema",
210+
"table_name",
211+
"id",
212+
"clone_group_id",
213+
"is_transient",
214+
"active_bytes",
215+
"time_travel_bytes",
216+
"failsafe_bytes",
217+
"retained_for_clone_bytes",
218+
"table_created",
219+
"table_dropped",
220+
"table_entered_failsafe",
221+
"catalog_created",
222+
"catalog_dropped",
223+
"schema_created",
224+
"schema_dropped",
225+
"comment",
226+
"deleted");
227+
String view = "SNOWFLAKE.ACCOUNT_USAGE.TABLE_STORAGE_METRICS";
228+
String predicate =
229+
"deleted IS NULL" + " AND " + "schema_dropped IS NULL" + " AND " + "table_dropped IS NULL";
230+
String query = String.format("SELECT %s FROM %s WHERE %s", selectList, view, predicate);
231+
ImmutableList<String> header =
232+
ImmutableList.of(
233+
"TableCatalog",
234+
"TableSchemaId",
235+
"TableSchema",
236+
"TableName",
237+
"Id",
238+
"CloneGroupId",
239+
"IsTransient",
240+
"ActiveBytes",
241+
"TimeTravelBytes",
242+
"FailsafeBytes",
243+
"RetainedForCloneBytes",
244+
"TableCreated",
245+
"TableDropped",
246+
"TableEnteredFailsafe",
247+
"CatalogCreated",
248+
"CatalogDropped",
249+
"SchemaCreated",
250+
"SchemaDropped",
251+
"Comment",
252+
"Deleted");
253+
return new LiteTimeSeriesTask("table_storage_metrics-au.csv", query, header);
254+
}
255+
196256
private static String buildQuery(String selectList, String view, String predicate) {
197257
return String.format("SELECT %s FROM %s WHERE %s", selectList, view, predicate);
198258
}

0 commit comments

Comments
 (0)