dotnet / dotnet/machinelearning-modelbuilder

Add support for `datetimeoffset` SQL column

Offen
#2,965 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Dockerfile
Sterne
285
Forks
66
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

When running the "Forecasting" model builder on a SQL Server table with a `datetimeoffset` column selected as the time series column, the model builder errors out with `Unable to cast object of type 'System.DateTimeOffset' to type 'System.DateTime'.`. I'd like to see native support for DateTimeOffset or at least a conversion to DateTime.

I'm using the .NET Framework Data Provider for SQL Server to connect.

```
2024-08-28 11:15:19.9161 DEBUG Unable to cast object of type 'System.DateTimeOffset' to type 'System.DateTime'.
at Microsoft.Data.SqlClient.SqlBuffer.get_DateTime()
at Microsoft.Data.SqlClient.SqlDataReader.GetDateTime(Int32 i)
at Microsoft.ML.Data.DatabaseLoader.Cursor.<>c__DisplayClass31_0.b__0(DateTime& value)
at Microsoft.Data.Analysis.PrimitiveDataFrameColumn`1.AddValueUsingCursor(DataViewRowCursor cursor, Delegate getter)
at Microsoft.ML.IDataViewExtensions.ToDataFrame(IDataView dataView, Int64 maxRows, String[] selectColumns)
at Microsoft.ML.ModelBuilder.AutoMLService.TimeSeriesForecastingTrainTestDatasetManager.InitializeSplitTrainValidateDataset() in /_/src/Microsoft.ML.ModelBuilder.AutoMLService/DatasetManagers/TimeSeriesForecastingTrainTestDatasetManager.cs:line 62
at Microsoft.ML.ModelBuilder.AutoMLService.TimeSeriesForecastingTrainTestDatasetManager..ctor(IDataView trainDataset, Single splitRatio, String labelColumn, String timeColumn, Boolean useDefaultIndex, IChannel logger) in /_/src/Microsoft.ML.ModelBuilder.AutoMLService/DatasetManagers/TimeSeriesForecastingTrainTestDatasetManager.cs:line 32
at Microsoft.ML.ModelBuilder.AutoMLService.Experiments.ForecastingExperiment.ExecuteAsync(IDataView trainData, IDataView validateData, CancellationToken ct) in /_/src/Microsoft.ML.ModelBuilder.AutoMLService/Experiments/ForecastingExperiment.cs:line 89
at Microsoft.ML.ModelBuilder.AutoMLEngine.StartTrainingAsync(ITrainingConfiguration config, PathConfiguration pathConfig, CancellationToken userCancellationToken) in /_/src/Microsoft.ML.ModelBuilder.AutoMLService/AutoMLEngineService/AutoMLEngine.cs:line 178 (Microsoft.ML.ModelBuilder.Utils.Logger.Debug)
```

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginnen Sie mit dem in der Stack Trace gezeigten Cursor-Getter von Microsoft.ML.Data.DatabaseLoader, untersuchen Sie anschließend TimeSeriesForecastingTrainTestDatasetManager.cs in Zeile 62 und den Forecasting-Ablauf in ForecastingExperiment.cs. Reproduzieren Sie die Ausführung des Forecasting-Modellbuilders mit SQL Server und einer datetimeoffset-Zeitreihenspalte; abgeschlossen ist die Aufgabe, wenn das Dataset initialisiert wird und das Forecasting ohne den DateTimeOffset-Castfehler fortgesetzt wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp, sql
Bereich
databases, machine-learning
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.