ok x fare altri test su server in rete + report tempi ma TROPPA RAM!!
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
[*.cs]
|
||||
|
||||
# CA1707: Gli identificatori non devono contenere caratteri di sottolineatura
|
||||
dotnet_diagnostic.CA1707.severity = none
|
||||
@@ -254,6 +254,7 @@
|
||||
<Content Include="fonts\fontawesome-webfont.woff" />
|
||||
<Content Include="fonts\fontawesome-webfont.ttf" />
|
||||
<Content Include="fonts\fontawesome-webfont.eot" />
|
||||
<Content Include=".editorconfig" />
|
||||
<None Include="Scripts\jquery-3.4.1.intellisense.js" />
|
||||
<Content Include="Scripts\jquery-3.4.1.js" />
|
||||
<Content Include="Scripts\jquery-3.4.1.min.js" />
|
||||
|
||||
+17
-11
@@ -117,23 +117,29 @@
|
||||
<div class="container">
|
||||
<div class="row text-center my-2 py-3">
|
||||
<div class="col">
|
||||
<b>Data riferimento</b>
|
||||
<h2>Data Ingestion</h2>
|
||||
<div class="row">
|
||||
<div class="col-12 my-2">
|
||||
<label for="txtData">Data Start</label>
|
||||
<asp:TextBox runat="server" ID="txtData" TextMode="Date" CssClass="form form-control form-control-sm" />
|
||||
</div>
|
||||
<div class="col-12 my-2">
|
||||
<label for="txtData">Num Days</label>
|
||||
<asp:TextBox runat="server" ID="txtNumDays" TextMode="Number" CssClass="form form-control form-control-sm" />
|
||||
</div>
|
||||
<div class="col-12 my-2">
|
||||
<asp:LinkButton runat="server" ID="lbtConvertData" CssClass="btn btn-sm btn-success btn-block" OnClick="lbtConvertData_Click">move MSSqlDb --> MongoDb</asp:LinkButton>
|
||||
<asp:Label runat="server" ID="lblOutConvers" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<asp:TextBox runat="server" ID="txtData" TextMode="Date" CssClass="form form-control form-control-sm" />
|
||||
</div>
|
||||
<div class="col">
|
||||
<asp:LinkButton runat="server" ID="lbtConvertData" CssClass="btn btn-sm btn-success btn-block" OnClick="lbtConvertData_Click">move MSSqlDb --> MongoDb</asp:LinkButton>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row text-center">
|
||||
<div class="col">
|
||||
<h1>Test SqlServer</h1>
|
||||
<h2>Test SqlServer</h2>
|
||||
<asp:LinkButton runat="server" ID="lbtReadDb" CssClass="btn btn-sm btn-primary btn-block">Read SqlDB</asp:LinkButton>
|
||||
<asp:Label runat="server" ID="lblTestDb" />
|
||||
</div>
|
||||
<div class="col">
|
||||
<h1>Test MongoDb</h1>
|
||||
<h2>Test MongoDb</h2>
|
||||
<asp:LinkButton runat="server" ID="lbtReadMongo" CssClass="btn btn-sm btn-secondary btn-block">Read MongoDB</asp:LinkButton>
|
||||
<asp:Label runat="server" ID="lblTestMongo" />
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
using MapoDb;
|
||||
using SteamWare;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace MP_SITE
|
||||
{
|
||||
@@ -20,17 +18,21 @@ namespace MP_SITE
|
||||
private void setupData()
|
||||
{
|
||||
txtData.Text = DateTime.Now.AddDays(-90).ToString("yyy-MM-dd");
|
||||
txtNumDays.Text = "7";
|
||||
}
|
||||
|
||||
protected void lbtConvertData_Click(object sender, EventArgs e)
|
||||
{
|
||||
// effettuo lettura dati FluxLog
|
||||
DateTime dataRif = DateTime.Now;
|
||||
DateTime.TryParse(txtData.Text, out dataRif);
|
||||
FluxArchive.man.trasferData(dataRif);
|
||||
// converto
|
||||
int numDays = 7;
|
||||
bool fatto = false;
|
||||
fatto = DateTime.TryParse(txtData.Text, out dataRif);
|
||||
fatto = int.TryParse(txtNumDays.Text, out numDays);
|
||||
|
||||
// salvo su mongoDB!
|
||||
var esito = FluxArchive.man.trasferData(dataRif, numDays);
|
||||
// registro tempo!
|
||||
lblOutConvers.Text = esito.message;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Generated
+18
@@ -23,6 +23,15 @@ namespace MP_SITE
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtData;
|
||||
|
||||
/// <summary>
|
||||
/// Controllo txtNumDays.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Campo generato automaticamente.
|
||||
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox txtNumDays;
|
||||
|
||||
/// <summary>
|
||||
/// Controllo lbtConvertData.
|
||||
/// </summary>
|
||||
@@ -32,6 +41,15 @@ namespace MP_SITE
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.LinkButton lbtConvertData;
|
||||
|
||||
/// <summary>
|
||||
/// Controllo lblOutConvers.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Campo generato automaticamente.
|
||||
/// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblOutConvers;
|
||||
|
||||
/// <summary>
|
||||
/// Controllo lbtReadDb.
|
||||
/// </summary>
|
||||
|
||||
+55
-20
@@ -1,14 +1,42 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using MapoSDK;
|
||||
using MongoDB.Bson;
|
||||
using MapoSDK;
|
||||
using MongoDB.Driver;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
|
||||
namespace MapoDb
|
||||
{
|
||||
/**************************************************************
|
||||
* Classe gestione FluxLog
|
||||
*
|
||||
* automaticamente gestisce dati su SqlServer / Redis (+recenti)
|
||||
* oppure su MongoDB (+ vecchi)
|
||||
*
|
||||
* rif x mongoDB
|
||||
*
|
||||
* rif x windows setup (abilitazione firewall, remote access, auth...)
|
||||
*
|
||||
* https://docs.mongodb.com/manual/tutorial/configure-windows-netsh-firewall/
|
||||
* https://www.configserverfirewall.com/mongodb/mongodb-allow-remote-connections/
|
||||
* https://www.shellhacks.com/mongodb-allow-remote-access/
|
||||
* https://stackoverflow.com/questions/3891657/setup-mongodb-on-windows-server-2008
|
||||
*
|
||||
* (conf file in C:\Program Files\MongoDB\Server\4.2\bin)
|
||||
*
|
||||
*
|
||||
* test rilettura: https://stackoverflow.com/questions/2943222/find-objects-between-two-dates-mongodb
|
||||
* https://studio3t.com/knowledge-base/articles/mongodb-find-method/
|
||||
* https://github.com/mongodb/mongo-csharp-driver
|
||||
* http://www.binaryheap.com/tech/time-series-data-in-mongodb/
|
||||
* https://www.codeproject.com/Tips/760099/Resampling-and-merging-time-series-data-using-LINQ
|
||||
* https://docs.microsoft.com/it-it/aspnet/core/tutorials/first-mongo-app?view=aspnetcore-3.0&tabs=visual-studio
|
||||
* https://www.codementor.io/pmbanugo/working-with-mongodb-in-net-1-basics-g4frivcvz
|
||||
* https://www.codementor.io/pmbanugo/working-with-mongodb-in-net-2-retrieving-mrlbeanm5
|
||||
* https://www.codementor.io/pmbanugo/working-with-mongodb-in-net-part-3-skip-sort-limit-and-projections-oqfwncyka
|
||||
*************************************************************/
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Classe che si occupa di gestire i dati di flusso
|
||||
/// - i dati inizialmente sono in REDIS e DB quando accumulati da IOB
|
||||
@@ -16,7 +44,8 @@ namespace MapoDb
|
||||
/// </summary>
|
||||
public class FluxArchive
|
||||
{
|
||||
string mdbConnString = "mongodb://localhost:27017";
|
||||
string mdbConnString = "mongodb://W2019-MONGODB:27017";
|
||||
//string mdbConnString = "mongodb://localhost:27017";
|
||||
MongoClient client;
|
||||
IMongoDatabase database;
|
||||
public FluxArchive()
|
||||
@@ -30,9 +59,13 @@ namespace MapoDb
|
||||
/// <summary>
|
||||
/// Effettua il trasferimento dati da SqlDB a MongoDB
|
||||
/// </summary>
|
||||
/// <param name="data2transfer"></param>
|
||||
public void trasferData(DateTime data2transfer)
|
||||
/// <param name="data2transfer">data di aprtenza</param>
|
||||
/// <param name="numDays">num giorni da trasferire</param>
|
||||
public exeResult trasferData(DateTime data2transfer, int numDays)
|
||||
{
|
||||
exeResult answ = new exeResult();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
Stopwatch sw = new Stopwatch();
|
||||
// Oggetto dove verserò i dati
|
||||
List<tsGrouped> listaRecords = new List<tsGrouped>();
|
||||
tsGrouped currRecord = null;
|
||||
@@ -44,7 +77,11 @@ namespace MapoDb
|
||||
string currFlux = "";
|
||||
string currMacc = "";
|
||||
// leggo da DB i records...
|
||||
var tabDati = DataLayer.obj.taFL.getFilt("", data2transfer, data2transfer.AddDays(7), true);
|
||||
sw.Start();
|
||||
sb.AppendLine($"Inizio processing periodo {data2transfer} --> {data2transfer.AddDays(numDays)}");
|
||||
var tabDati = DataLayer.obj.taFL.getFilt("", data2transfer, data2transfer.AddDays(numDays), true);
|
||||
sb.AppendLine($"Effettuata lettura DB: {tabDati.Count} record in {sw.ElapsedMilliseconds / 1000} sec");
|
||||
sw.Restart();
|
||||
// ora converto...
|
||||
// faccio ciclo su 24 h...
|
||||
for (int i = 0; i < 24; i++)
|
||||
@@ -94,20 +131,18 @@ namespace MapoDb
|
||||
{
|
||||
listaRecords.Add(currRecord);
|
||||
}
|
||||
sb.AppendLine($"Generata collezione di {listaRecords.Count} record in {sw.ElapsedMilliseconds / 1000} sec");
|
||||
sw.Restart();
|
||||
// oggetto gestione dati ts raggruppati
|
||||
var collection = database.GetCollection<tsGrouped>("FluxLog");
|
||||
// salvo in blocco
|
||||
collection.InsertMany(listaRecords);
|
||||
sb.AppendLine($"Salvata su MongoDb collezione di {listaRecords.Count} record in {sw.ElapsedMilliseconds / 1000} sec");
|
||||
|
||||
// test rilettura: https://stackoverflow.com/questions/2943222/find-objects-between-two-dates-mongodb
|
||||
// https://studio3t.com/knowledge-base/articles/mongodb-find-method/
|
||||
// https://github.com/mongodb/mongo-csharp-driver
|
||||
// http://www.binaryheap.com/tech/time-series-data-in-mongodb/
|
||||
// https://www.codeproject.com/Tips/760099/Resampling-and-merging-time-series-data-using-LINQ
|
||||
// https://docs.microsoft.com/it-it/aspnet/core/tutorials/first-mongo-app?view=aspnetcore-3.0&tabs=visual-studio
|
||||
// https://www.codementor.io/pmbanugo/working-with-mongodb-in-net-1-basics-g4frivcvz
|
||||
// https://www.codementor.io/pmbanugo/working-with-mongodb-in-net-2-retrieving-mrlbeanm5
|
||||
// https://www.codementor.io/pmbanugo/working-with-mongodb-in-net-part-3-skip-sort-limit-and-projections-oqfwncyka
|
||||
// restituisco messaggio...
|
||||
answ.esito = esitoExec.ok;
|
||||
answ.message = sb.ToString();
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,6 +59,15 @@
|
||||
week,
|
||||
month
|
||||
}
|
||||
/// <summary>
|
||||
/// Tipo di esito (generico)
|
||||
/// </summary>
|
||||
public enum esitoExec
|
||||
{
|
||||
undone,
|
||||
ok,
|
||||
error
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco task ammessi (x IOB-WIN da eseguire...)
|
||||
|
||||
@@ -316,6 +316,21 @@ namespace MapoSDK
|
||||
/// </summary>
|
||||
public List<tsData> samples { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// Classe x inviare messaggi di tipo esecuzione di una generica esecuzione
|
||||
/// </summary>
|
||||
public class exeResult
|
||||
{
|
||||
/// <summary>
|
||||
/// Esito del risultato
|
||||
/// </summary>
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
public esitoExec esito { get; set; } = esitoExec.undone;
|
||||
/// <summary>
|
||||
/// Messaggio associato
|
||||
/// </summary>
|
||||
public string message { get; set; } = "";
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
Reference in New Issue
Block a user