Skip to content

Commit 6177186

Browse files
committed
Replace time series methods with fields
1 parent 3365f84 commit 6177186

File tree

1 file changed

+98
-146
lines changed

1 file changed

+98
-146
lines changed

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

Lines changed: 98 additions & 146 deletions
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,13 @@ public final void addTasksTo(
387387

388388
List<TaskDescription> timeSeriesTasks =
389389
TimeSeriesView.valuesInOrder.stream()
390-
.map(item -> item.taskDescription(arguments))
390+
.map(
391+
item -> {
392+
String override = arguments.getDefinition(item.property);
393+
String prefix = formatPrefix(item.headerClass, item.name());
394+
String query = overrideableQuery(override, prefix, item.column.value);
395+
return new TaskDescription(item.zipPrefix, query, item.headerClass);
396+
})
391397
.collect(toImmutableList());
392398
Duration duration = Duration.ofDays(1);
393399
ZonedIntervalIterableGenerator.forConnectorArguments(
@@ -426,156 +432,104 @@ static String overrideableQuery(
426432
}
427433
}
428434

435+
enum TimeSeriesColumn {
436+
COMPLETED_TIME("COMPLETED_TIME"),
437+
END_TIME("END_TIME"),
438+
EVENT_TIMESTAMP("EVENT_TIMESTAMP"),
439+
LAST_LOAD_TIME("LAST_LOAD_TIME"),
440+
TIMESTAMP("TIMESTAMP"),
441+
USAGE_DATE("USAGE_DATE");
442+
443+
String value;
444+
445+
TimeSeriesColumn(String value) {
446+
this.value = value;
447+
}
448+
}
449+
429450
enum TimeSeriesView {
430-
WAREHOUSE_EVENTS_HISTORY(WarehouseEventsHistoryFormat.Header.class) {
431-
@Override
432-
TaskDescription taskDescription(@Nonnull ConnectorArguments arguments) {
433-
ConnectorProperty property =
434-
SnowflakeLogConnectorProperties.WAREHOUSE_EVENTS_HISTORY_OVERRIDE_QUERY;
435-
return new TaskDescription(
436-
WarehouseEventsHistoryFormat.ZIP_ENTRY_PREFIX,
437-
overrideableQuery(arguments.getDefinition(property), queryPrefix, "TIMESTAMP"),
438-
headerClass);
439-
}
440-
},
441-
AUTOMATIC_CLUSTERING_HISTORY(AutomaticClusteringHistoryFormat.Header.class) {
442-
@Override
443-
TaskDescription taskDescription(@Nonnull ConnectorArguments arguments) {
444-
ConnectorProperty property =
445-
SnowflakeLogConnectorProperties.AUTOMATIC_CLUSTERING_HISTORY_OVERRIDE_QUERY;
446-
return new TaskDescription(
447-
AutomaticClusteringHistoryFormat.ZIP_ENTRY_PREFIX,
448-
overrideableQuery(arguments.getDefinition(property), queryPrefix, "END_TIME"),
449-
headerClass);
450-
}
451-
},
452-
COPY_HISTORY(CopyHistoryFormat.Header.class) {
453-
@Override
454-
TaskDescription taskDescription(@Nonnull ConnectorArguments arguments) {
455-
ConnectorProperty property = SnowflakeLogConnectorProperties.COPY_HISTORY_OVERRIDE_QUERY;
456-
return new TaskDescription(
457-
CopyHistoryFormat.ZIP_ENTRY_PREFIX,
458-
overrideableQuery(arguments.getDefinition(property), queryPrefix, "LAST_LOAD_TIME"),
459-
headerClass);
460-
}
461-
},
462-
DATABASE_REPLICATION_USAGE_HISTORY(DatabaseReplicationUsageHistoryFormat.Header.class) {
463-
@Override
464-
TaskDescription taskDescription(@Nonnull ConnectorArguments arguments) {
465-
ConnectorProperty property =
466-
SnowflakeLogConnectorProperties.DATABASE_REPLICATION_USAGE_HISTORY_OVERRIDE_QUERY;
467-
return new TaskDescription(
468-
DatabaseReplicationUsageHistoryFormat.ZIP_ENTRY_PREFIX,
469-
overrideableQuery(arguments.getDefinition(property), queryPrefix, "END_TIME"),
470-
headerClass);
471-
}
472-
},
473-
LOGIN_HISTORY(LoginHistoryFormat.Header.class) {
474-
@Override
475-
TaskDescription taskDescription(@Nonnull ConnectorArguments arguments) {
476-
ConnectorProperty property = SnowflakeLogConnectorProperties.LOGIN_HISTORY_OVERRIDE_QUERY;
477-
return new TaskDescription(
478-
LoginHistoryFormat.ZIP_ENTRY_PREFIX,
479-
overrideableQuery(arguments.getDefinition(property), queryPrefix, "EVENT_TIMESTAMP"),
480-
headerClass);
481-
}
482-
},
483-
METERING_DAILY_HISTORY(MeteringDailyHistoryFormat.Header.class) {
484-
@Override
485-
TaskDescription taskDescription(@Nonnull ConnectorArguments arguments) {
486-
ConnectorProperty property =
487-
SnowflakeLogConnectorProperties.METERING_DAILY_HISTORY_OVERRIDE_QUERY;
488-
return new TaskDescription(
489-
MeteringDailyHistoryFormat.ZIP_ENTRY_PREFIX,
490-
overrideableQuery(arguments.getDefinition(property), queryPrefix, "USAGE_DATE"),
491-
headerClass);
492-
}
493-
},
494-
PIPE_USAGE_HISTORY(PipeUsageHistoryFormat.Header.class) {
495-
@Override
496-
TaskDescription taskDescription(@Nonnull ConnectorArguments arguments) {
497-
ConnectorProperty property =
498-
SnowflakeLogConnectorProperties.PIPE_USAGE_HISTORY_OVERRIDE_QUERY;
499-
return new TaskDescription(
500-
PipeUsageHistoryFormat.ZIP_ENTRY_PREFIX,
501-
overrideableQuery(arguments.getDefinition(property), queryPrefix, "END_TIME"),
502-
headerClass);
503-
}
504-
},
505-
QUERY_ACCELERATION_HISTORY(QueryAccelerationHistoryFormat.Header.class) {
506-
@Override
507-
TaskDescription taskDescription(@Nonnull ConnectorArguments arguments) {
508-
ConnectorProperty property =
509-
SnowflakeLogConnectorProperties.QUERY_ACCELERATION_HISTORY_OVERRIDE_QUERY;
510-
return new TaskDescription(
511-
QueryAccelerationHistoryFormat.ZIP_ENTRY_PREFIX,
512-
overrideableQuery(arguments.getDefinition(property), queryPrefix, "END_TIME"),
513-
headerClass,
514-
TaskCategory.OPTIONAL);
515-
}
516-
},
517-
REPLICATION_GROUP_USAGE_HISTORY(ReplicationGroupUsageHistoryFormat.Header.class) {
518-
@Override
519-
TaskDescription taskDescription(@Nonnull ConnectorArguments arguments) {
520-
ConnectorProperty property =
521-
SnowflakeLogConnectorProperties.REPLICATION_GROUP_USAGE_HISTORY_OVERRIDE_QUERY;
522-
return new TaskDescription(
523-
QueryAccelerationHistoryFormat.ZIP_ENTRY_PREFIX,
524-
overrideableQuery(arguments.getDefinition(property), queryPrefix, "END_TIME"),
525-
headerClass,
526-
TaskCategory.OPTIONAL);
527-
}
528-
},
529-
SERVERLESS_TASK_HISTORY(ServerlessTaskHistoryFormat.Header.class) {
530-
@Override
531-
TaskDescription taskDescription(@Nonnull ConnectorArguments arguments) {
532-
ConnectorProperty property =
533-
SnowflakeLogConnectorProperties.SERVERLESS_TASK_HISTORY_OVERRIDE_QUERY;
534-
return new TaskDescription(
535-
ServerlessTaskHistoryFormat.ZIP_ENTRY_PREFIX,
536-
overrideableQuery(arguments.getDefinition(property), queryPrefix, "END_TIME"),
537-
headerClass);
538-
}
539-
},
540-
TASK_HISTORY(TaskHistoryFormat.Header.class) {
541-
@Override
542-
TaskDescription taskDescription(@Nonnull ConnectorArguments arguments) {
543-
ConnectorProperty property = SnowflakeLogConnectorProperties.TASK_HISTORY_OVERRIDE_QUERY;
544-
return new TaskDescription(
545-
TaskHistoryFormat.ZIP_ENTRY_PREFIX,
546-
overrideableQuery(arguments.getDefinition(property), queryPrefix, "COMPLETED_TIME"),
547-
headerClass);
548-
}
549-
},
550-
WAREHOUSE_LOAD_HISTORY(WarehouseLoadHistoryFormat.Header.class) {
551-
@Override
552-
TaskDescription taskDescription(@Nonnull ConnectorArguments arguments) {
553-
ConnectorProperty property =
554-
SnowflakeLogConnectorProperties.WAREHOUSE_LOAD_HISTORY_OVERRIDE_QUERY;
555-
return new TaskDescription(
556-
WarehouseLoadHistoryFormat.ZIP_ENTRY_PREFIX,
557-
overrideableQuery(arguments.getDefinition(property), queryPrefix, "END_TIME"),
558-
headerClass);
559-
}
560-
},
561-
WAREHOUSE_METERING_HISTORY(WarehouseMeteringHistoryFormat.Header.class) {
562-
@Override
563-
TaskDescription taskDescription(@Nonnull ConnectorArguments arguments) {
564-
ConnectorProperty property =
565-
SnowflakeLogConnectorProperties.WAREHOUSE_METERING_HISTORY_OVERRIDE_QUERY;
566-
return new TaskDescription(
567-
WarehouseMeteringHistoryFormat.ZIP_ENTRY_PREFIX,
568-
overrideableQuery(arguments.getDefinition(property), queryPrefix, "END_TIME"),
569-
headerClass);
570-
}
571-
};
451+
WAREHOUSE_EVENTS_HISTORY(
452+
WarehouseEventsHistoryFormat.Header.class,
453+
WarehouseEventsHistoryFormat.ZIP_ENTRY_PREFIX,
454+
TimeSeriesColumn.TIMESTAMP,
455+
SnowflakeLogConnectorProperties.WAREHOUSE_EVENTS_HISTORY_OVERRIDE_QUERY),
456+
AUTOMATIC_CLUSTERING_HISTORY(
457+
AutomaticClusteringHistoryFormat.Header.class,
458+
AutomaticClusteringHistoryFormat.ZIP_ENTRY_PREFIX,
459+
TimeSeriesColumn.END_TIME,
460+
SnowflakeLogConnectorProperties.AUTOMATIC_CLUSTERING_HISTORY_OVERRIDE_QUERY),
461+
COPY_HISTORY(
462+
CopyHistoryFormat.Header.class,
463+
CopyHistoryFormat.ZIP_ENTRY_PREFIX,
464+
TimeSeriesColumn.LAST_LOAD_TIME,
465+
SnowflakeLogConnectorProperties.COPY_HISTORY_OVERRIDE_QUERY),
466+
DATABASE_REPLICATION_USAGE_HISTORY(
467+
DatabaseReplicationUsageHistoryFormat.Header.class,
468+
DatabaseReplicationUsageHistoryFormat.ZIP_ENTRY_PREFIX,
469+
TimeSeriesColumn.END_TIME,
470+
SnowflakeLogConnectorProperties.DATABASE_REPLICATION_USAGE_HISTORY_OVERRIDE_QUERY),
471+
LOGIN_HISTORY(
472+
LoginHistoryFormat.Header.class,
473+
LoginHistoryFormat.ZIP_ENTRY_PREFIX,
474+
TimeSeriesColumn.EVENT_TIMESTAMP,
475+
SnowflakeLogConnectorProperties.LOGIN_HISTORY_OVERRIDE_QUERY),
476+
METERING_DAILY_HISTORY(
477+
MeteringDailyHistoryFormat.Header.class,
478+
MeteringDailyHistoryFormat.ZIP_ENTRY_PREFIX,
479+
TimeSeriesColumn.USAGE_DATE,
480+
SnowflakeLogConnectorProperties.METERING_DAILY_HISTORY_OVERRIDE_QUERY),
481+
PIPE_USAGE_HISTORY(
482+
PipeUsageHistoryFormat.Header.class,
483+
PipeUsageHistoryFormat.ZIP_ENTRY_PREFIX,
484+
TimeSeriesColumn.END_TIME,
485+
SnowflakeLogConnectorProperties.PIPE_USAGE_HISTORY_OVERRIDE_QUERY),
486+
QUERY_ACCELERATION_HISTORY(
487+
QueryAccelerationHistoryFormat.Header.class,
488+
QueryAccelerationHistoryFormat.ZIP_ENTRY_PREFIX,
489+
TimeSeriesColumn.END_TIME,
490+
SnowflakeLogConnectorProperties.QUERY_ACCELERATION_HISTORY_OVERRIDE_QUERY),
491+
REPLICATION_GROUP_USAGE_HISTORY(
492+
ReplicationGroupUsageHistoryFormat.Header.class,
493+
QueryAccelerationHistoryFormat.ZIP_ENTRY_PREFIX,
494+
TimeSeriesColumn.END_TIME,
495+
SnowflakeLogConnectorProperties.REPLICATION_GROUP_USAGE_HISTORY_OVERRIDE_QUERY),
496+
SERVERLESS_TASK_HISTORY(
497+
ServerlessTaskHistoryFormat.Header.class,
498+
ServerlessTaskHistoryFormat.ZIP_ENTRY_PREFIX,
499+
TimeSeriesColumn.END_TIME,
500+
SnowflakeLogConnectorProperties.SERVERLESS_TASK_HISTORY_OVERRIDE_QUERY),
501+
TASK_HISTORY(
502+
TaskHistoryFormat.Header.class,
503+
TaskHistoryFormat.ZIP_ENTRY_PREFIX,
504+
TimeSeriesColumn.COMPLETED_TIME,
505+
SnowflakeLogConnectorProperties.TASK_HISTORY_OVERRIDE_QUERY),
506+
WAREHOUSE_LOAD_HISTORY(
507+
WarehouseLoadHistoryFormat.Header.class,
508+
WarehouseLoadHistoryFormat.ZIP_ENTRY_PREFIX,
509+
TimeSeriesColumn.END_TIME,
510+
SnowflakeLogConnectorProperties.WAREHOUSE_LOAD_HISTORY_OVERRIDE_QUERY),
511+
WAREHOUSE_METERING_HISTORY(
512+
WarehouseMeteringHistoryFormat.Header.class,
513+
WarehouseMeteringHistoryFormat.ZIP_ENTRY_PREFIX,
514+
TimeSeriesColumn.END_TIME,
515+
SnowflakeLogConnectorProperties.WAREHOUSE_METERING_HISTORY_OVERRIDE_QUERY);
572516

573517
final Class<? extends Enum<?>> headerClass;
518+
final ConnectorProperty property;
574519
final String queryPrefix;
520+
final String zipPrefix;
521+
final TimeSeriesColumn column;
575522

576-
TimeSeriesView(Class<? extends Enum<?>> headerClass) {
523+
TimeSeriesView(
524+
Class<? extends Enum<?>> headerClass,
525+
String zipPrefix,
526+
TimeSeriesColumn column,
527+
SnowflakeLogConnectorProperties property) {
577528
this.headerClass = headerClass;
529+
this.property = property;
578530
this.queryPrefix = formatPrefix(headerClass, name());
531+
this.zipPrefix = zipPrefix;
532+
this.column = column;
579533
}
580534

581535
static final ImmutableList<TimeSeriesView> valuesInOrder =
@@ -593,8 +547,6 @@ TaskDescription taskDescription(@Nonnull ConnectorArguments arguments) {
593547
TASK_HISTORY,
594548
WAREHOUSE_LOAD_HISTORY,
595549
WAREHOUSE_METERING_HISTORY);
596-
597-
abstract TaskDescription taskDescription(@Nonnull ConnectorArguments arguments);
598550
}
599551

600552
@Nonnull

0 commit comments

Comments
 (0)