Skip to content

Commit 626db30

Browse files
committed
Reduce false coverage positives in planner
1 parent 070f9e6 commit 626db30

File tree

1 file changed

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

1 file changed

+46
-22
lines changed

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

Lines changed: 46 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,12 @@ ImmutableList<Task<?>> generateLiteSpecificQueries() {
103103
builder.add(
104104
new JdbcSelectTask(TablesFormat.AU_ZIP_ENTRY_NAME, tables)
105105
.withHeaderClass(TablesFormat.Header.class));
106-
builder.add(proceduresTask());
107-
builder.add(reportDateRangeTask());
108-
builder.add(eventStateTask());
109-
builder.add(warehouseEventsHistoryTask());
110-
builder.add(warehouseMeteringTask());
111-
builder.add(storageMetricsLiteTask());
106+
builder.add(procedures.toTask());
107+
builder.add(reportDateRange.toTask());
108+
builder.add(eventState.toTask());
109+
builder.add(warehouseEventsHistory.toTask());
110+
builder.add(warehouseMetering.toTask());
111+
builder.add(storageMetrics.toTask());
112112

113113
for (AssessmentQuery item : liteAssessmentQueries) {
114114
String query = String.format(item.formatString, view, /* an empty WHERE clause */ "");
@@ -156,33 +156,61 @@ String substitute(String schema, String whereCondition) {
156156
}
157157
}
158158

159-
Task<?> eventStateTask() {
159+
private static final class LiteTaskData {
160+
161+
final String csvFile;
162+
final String query;
163+
final ImmutableList<String> header;
164+
165+
LiteTaskData(String csv, String query, ImmutableList<String> header) {
166+
this.csvFile = csv;
167+
this.query = query;
168+
this.header = header;
169+
}
170+
171+
Task<?> toTask() {
172+
return new LiteTimeSeriesTask(csvFile, query, header);
173+
}
174+
}
175+
176+
private static LiteTaskData eventState = initEventState();
177+
private static LiteTaskData procedures = initProcedures();
178+
private static LiteTaskData reportDateRange = initReportDateRange();
179+
private static LiteTaskData storageMetrics = initStorageMetrics();
180+
private static LiteTaskData warehouseEventsHistory = initWarehouseEventsHistory();
181+
private static LiteTaskData warehouseMetering = initWarehouseMetering();
182+
183+
private static String buildQuery(String selectList, String view, String predicate) {
184+
return String.format("SELECT %s FROM %s WHERE %s", selectList, view, predicate);
185+
}
186+
187+
private static LiteTaskData initEventState() {
160188
String query =
161189
"SELECT event_state, count(*)"
162190
+ " FROM SNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_EVENTS_HISTORY"
163191
+ " WHERE event_name LIKE '%CLUSTER%' GROUP BY ALL";
164192
ImmutableList<String> header = ImmutableList.of("EventState", "Count");
165-
return new LiteTimeSeriesTask("event_state.csv", query, header);
193+
return new LiteTaskData("event_state.csv", query, header);
166194
}
167195

168-
Task<?> proceduresTask() {
196+
private static LiteTaskData initProcedures() {
169197
String view = "SNOWFLAKE.ACCOUNT_USAGE.PROCEDURES";
170198
String query =
171199
String.format(
172200
"SELECT procedure_language, procedure_owner, count(1) FROM %s GROUP BY ALL", view);
173201
ImmutableList<String> header = ImmutableList.of("Language", "Owner", "Count");
174-
return new LiteTimeSeriesTask("procedures.csv", query, header);
202+
return new LiteTaskData("procedures.csv", query, header);
175203
}
176204

177-
Task<?> reportDateRangeTask() {
205+
private static LiteTaskData initReportDateRange() {
178206
String selectList = "min(timestamp), max(timestamp)";
179207
String view = "SNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_EVENTS_HISTORY";
180208
String query = buildQuery(selectList, view, TIME_PREDICATE);
181209
ImmutableList<String> header = ImmutableList.of("StartTime", "EndTime");
182-
return new LiteTimeSeriesTask("report_date_range.csv", query, header);
210+
return new LiteTaskData("report_date_range.csv", query, header);
183211
}
184212

185-
Task<?> storageMetricsLiteTask() {
213+
private static LiteTaskData initStorageMetrics() {
186214
String selectList =
187215
String.join(
188216
", ",
@@ -231,14 +259,10 @@ Task<?> storageMetricsLiteTask() {
231259
"SchemaDropped",
232260
"Comment",
233261
"Deleted");
234-
return new LiteTimeSeriesTask("table_storage_metrics-au.csv", query, header);
235-
}
236-
237-
private static String buildQuery(String selectList, String view, String predicate) {
238-
return String.format("SELECT %s FROM %s WHERE %s", selectList, view, predicate);
262+
return new LiteTaskData("table_storage_metrics-au.csv", query, header);
239263
}
240264

241-
Task<?> warehouseEventsHistoryTask() {
265+
private static LiteTaskData initWarehouseEventsHistory() {
242266
String selectList =
243267
String.join(
244268
", ",
@@ -262,10 +286,10 @@ Task<?> warehouseEventsHistoryTask() {
262286
"EventReason",
263287
"EventState",
264288
"QueryId");
265-
return new LiteTimeSeriesTask("warehouse_events_lite.csv", query, header);
289+
return new LiteTaskData("warehouse_events_lite.csv", query, header);
266290
}
267291

268-
Task<?> warehouseMeteringTask() {
292+
private static LiteTaskData initWarehouseMetering() {
269293
String selectList =
270294
String.join(
271295
", ",
@@ -287,6 +311,6 @@ Task<?> warehouseMeteringTask() {
287311
"WarehouseName",
288312
"CreditsUsedCompute",
289313
"CreditsUsedCloudServices");
290-
return new LiteTimeSeriesTask("warehouse_metering_lite.csv", query, header);
314+
return new LiteTaskData("warehouse_metering_lite.csv", query, header);
291315
}
292316
}

0 commit comments

Comments
 (0)