private static void corregirPrueba(DataFactoryManagementClient client) { //Creo pipelines que suben mas de una tabla en cada uno. int cantidadTablasPorPipe = 1; int ayudaRecorrido = 0; string[] nombreTablas = DatosGrales.traerTablas(true); string[] nombreTablasParaCompresion = DatosGrales.traerTablas(false); List <Activity> la = new List <Activity>(); PipelineReference pipeRef; for (int i = 0; i < 1; i++) { pipeRef = new PipelineReference("Pipeline-Sql-DataLake-ConCompresion-Claim-" + nombreTablas[i], "Pipeline-Sql-DataLake-ConCompresion-Claim-" + nombreTablas[i]); Dictionary <String, object> diccionarioParams = new Dictionary <String, object>(); diccionarioParams.Add("Param1", 1); ExecutePipelineActivity epa = new ExecutePipelineActivity("ExecPipe-" + nombreTablas[i], pipeRef, diccionarioParams, "Llama al pipe para " + nombreTablas[i], null, diccionarioParams, false); la.Add(epa); } PipelineResource pipe1 = new PipelineResource(); pipe1.Activities = la; client.Pipelines.CreateOrUpdate(DatosGrales.resourceGroup, DatosGrales.dataFactoryName, "Pipeline-ManyActivs-Claim-1", pipe1); Console.Write("Mensaje"); }
private static void correrTodosLosPipes(DataFactoryManagementClient client) { var nombres = DatosGrales.traerTablas(true); string nombreBD = DatosGrales.nombreBD; if (nombreBD == "ClaimCenter") { nombreBD = "Claim"; } // Exception exp = null; for (int i = 0; i < nombres.Length; i++) { exp = new Exception(); while (exp != null) { try { client.Pipelines.CreateRun(DatosGrales.resourceGroup, DatosGrales.dataFactoryName, "Pipeline-Sql-DataLake-ConCompresion-" + nombreBD + "-" + nombres[i], null); exp = null; } catch (Exception ex) { exp = ex; } } Console.Write((i + 1) + ". Run para pipe: Pipeline-Sql-DataLake-ConCompresion-" + nombreBD + "-" + nombres[i] + " creado.\n"); } }
private static void crearPipesSubidaNormal(DataFactoryManagementClient client) { var nombreTablas = DatosGrales.traerTablas(true); var nombreSinSchema = DatosGrales.traerTablas(false); List <Activity> la; CopyActivity ca; List <DatasetReference> inp; DatasetReference dr; List <DatasetReference> outp; DatasetReference drO; PipelineResource pipe; string nombreTablaParaConsulta; string consulta; string nombreBD = DatosGrales.nombreBD; for (int i = 0; i < nombreTablas.Length; i++) { if (esTablaEspecial(nombreTablas[i])) { //no creo nada porque es especial } else { nombreTablaParaConsulta = nombreTablas[i].Replace('-', '.'); consulta = DatosGrales.queryMagica(nombreTablaParaConsulta, 10000); la = new List <Activity>(); ca = new CopyActivity(); ca.Name = "CopyPipeline-Sql-Lake-" + nombreTablas[i]; ca.Source = new SqlSource(null, 3, null, consulta); ca.Sink = new SqlSink(); inp = new List <DatasetReference>(); dr = new DatasetReference("Dataset_" + nombreBD + "_" + nombreTablas[i]); inp.Add(dr); ca.Inputs = inp; outp = new List <DatasetReference>(); drO = new DatasetReference("Dataset_" + nombreBD + "_DataLakeStore_" + nombreSinSchema[i]); outp.Add(drO); ca.Outputs = outp; la.Add(ca); pipe = new PipelineResource(); pipe.Activities = la; client.Pipelines.CreateOrUpdate(DatosGrales.resourceGroup, DatosGrales.dataFactoryName, "Pipeline-Copy-" + nombreBD + "-" + nombreTablas[i], pipe); Console.Write((i + 1) + ". Pipeline-Copy-" + nombreBD + "-" + nombreTablas[i] + " creado.\n"); } } }
public static void createUpdateTrigger(DataFactoryManagementClient client) { TriggerPipelineReference[] triPipe; string[] tablas = DatosGrales.traerTablas(true); for (int o = 1; o < (tablas.Length) / 10; o++) { if (o != Convert.ToInt32(tablas.Length / 10)) { triPipe = new TriggerPipelineReference[o * 10];//tablas.Length } else { triPipe = new TriggerPipelineReference[tablas.Length]; } PipelineReference pipe; for (int i = 0; i < triPipe.Length; i++) { if (!tablas[i].Contains("ccst")) { pipe = new PipelineReference("Pipeline-Sql-DataLake-ConCompresion-Claim-" + tablas[i], "Pipeline-Sql-DataLake-ConCompresion-Claim-" + tablas[i]); triPipe[i] = new TriggerPipelineReference(pipe); //Agrego parametro dummy porque en realidad no uso, pero es obligatorio tener. Dictionary <String, object> diccionarioParams = new Dictionary <String, object>(); diccionarioParams.Add("Param1", 1); triPipe[i].Parameters = diccionarioParams; } } DateTime hoy = DateTime.Now.AddDays(-2); DateTime fin = hoy.AddDays(15); ScheduleTriggerRecurrence str = new ScheduleTriggerRecurrence(null, "Day", 1, hoy, fin); str.TimeZone = "UTC"; ScheduleTrigger schedule = new ScheduleTrigger(str, null, "Trigger para pipes con compresion", "Stopped", triPipe); TriggerResource trig = new TriggerResource(schedule, null, "CompresionSinCCST", "ScheduleTrigger"); //trig.Proper try { TriggerResource trig1 = client.Triggers.CreateOrUpdate(DatosGrales.resourceGroup, DatosGrales.dataFactoryName, "CompresionSinCCST", trig); Console.WriteLine("Trigger creado con " + (o * 10) + " pipelines, a ver si se banca mas?"); } catch (Exception ex) { Console.WriteLine("Trigger con " + (o * 10) + " pipelines fallo, hacemos otro intento..."); o--; } } //var aor = client.Triggers.StartWithHttpMessagesAsync(resourceGroup, dataFactoryName, "Trigger prueba tarea"); }
private static void createDatasetsSQLServer(DataFactoryManagementClient client) { var nombreTablas = DatosGrales.traerTablas(true); string nombreBD = DatosGrales.nombreBD; DatasetResource dsResult; DatasetResource sqlDataset;// for (int i = 0; i < nombreTablas.Length; i++) { sqlDataset = new DatasetResource( new SqlServerTableDataset( new LinkedServiceReference(DatosGrales.linkedServiceSQLServer), nombreTablas[i])); dsResult = client.Datasets.CreateOrUpdate(DatosGrales.resourceGroup, DatosGrales.dataFactoryName, "Dataset_" + nombreBD + "_" + nombreTablas[i], sqlDataset); Console.Write((i + 1) + ". Dataset_" + nombreBD + "_" + nombreTablas[i] + " creado.\n"); } }
private static void eliminarPipes(DataFactoryManagementClient client) { string[] nombreTablas = DatosGrales.traerTablas(true); int intentosSinComp = 0; int intentosConComp = 0; for (int i = 0; i < nombreTablas.Length; i++) { intentosSinComp = 0; intentosConComp = 0; while (intentosSinComp < 4) { try { client.Pipelines.Delete(DatosGrales.resourceGroup, DatosGrales.dataFactoryName, "Pipeline-Copy-Claim-" + nombreTablas[i]); Console.Write((i + 1) + ". Sin compresion: Pipeline-Copy-Claim-" + nombreTablas[i] + " eliminado.\n"); intentosSinComp = 4; } catch (Exception ex) { //si falla, aumento el contador y espero un segundo antes de intentar de nuevo intentosSinComp++; Console.WriteLine(ex.Message); Thread.Sleep(1000); } } //while (intentosConComp < 4) //{ // try // { // client.Pipelines.Delete(DatosGrales.resourceGroup, DatosGrales.dataFactoryName, "Pipeline-Sql-DataLake-ConCompresion-Claim-" + nombreTablas[i]); // Console.Write((i + 1) + ". Con compresion: Pipeline-Sql-DataLake-ConCompresion-Claim-" + nombreTablas[i] + " eliminado.\n"); // } // catch (Exception ex) // { // //si falla, aumento el contador y espero un segundo antes de intentar de nuevo // intentosConComp++; // Thread.Sleep(1000); // } //} } }
public static void createUpdateTrigger1(DataFactoryManagementClient client) { TriggerPipelineReference[] triPipe; string[] tablas = DatosGrales.traerTablas(true); triPipe = new TriggerPipelineReference[5]; PipelineReference pipe; for (int i = 0; i < triPipe.Length; i++) { if (!tablas[i].Contains("ccst")) { pipe = new PipelineReference("Pipeline-Sql-DataLake-ConCompresion-Claim-" + tablas[i], "Pipeline-Sql-DataLake-ConCompresion-Claim-" + tablas[i]); triPipe[i] = new TriggerPipelineReference(pipe); //Agrego parametro dummy porque en realidad no uso, pero es obligatorio tener. Dictionary <String, object> diccionarioParams = new Dictionary <String, object>(); diccionarioParams.Add("Param1", 1); triPipe[i].Parameters = diccionarioParams; } } DateTime hoy = DateTime.Now.AddDays(-2); DateTime fin = hoy.AddDays(15); ScheduleTriggerRecurrence str = new ScheduleTriggerRecurrence(null, "Day", 1, hoy, fin); str.TimeZone = "UTC"; ScheduleTrigger schedule = new ScheduleTrigger(str, null, "Trigger para pipes con compresion", "Stopped", triPipe); TriggerResource trig = new TriggerResource(schedule, null, "CompresionSinCCST", "ScheduleTrigger"); //trig.Proper try { TriggerResource trig1 = client.Triggers.CreateOrUpdate(DatosGrales.resourceGroup, DatosGrales.dataFactoryName, "CompresionSinCCST1", trig); Console.WriteLine("Trigger creado!"); } catch (Exception ex) { Console.WriteLine("Trigger fallo al crearse =("); } }
private static void createLakeDatasetsCompresion(DataFactoryManagementClient client) { var nombreTablas = DatosGrales.traerTablas(false); AzureDataLakeStoreDataset dlsd = new AzureDataLakeStoreDataset(); TextFormat txtfrm; DatasetResource DataLakeDataset; string nombreBD = DatosGrales.nombreBD; for (int i = 1190; i < nombreTablas.Length; i++) { dlsd.LinkedServiceName = new LinkedServiceReference(DatosGrales.linkedServiceLake); dlsd.FolderPath = "Transient Data/" + nombreBD + "/"; dlsd.FileName = nombreTablas[i] + ".csv.gz"; dlsd.Compression = new DatasetGZipCompression(null, "Optimal"); txtfrm = new TextFormat(); txtfrm.ColumnDelimiter = "|"; txtfrm.EncodingName = "Windows-1252"; txtfrm.FirstRowAsHeader = true; //txtfrm.NullValue = ""; txtfrm.TreatEmptyAsNull = true; //txtfrm.QuoteChar = "{"; dlsd.Format = txtfrm; DataLakeDataset = new DatasetResource(dlsd); if (nombreBD == "ClaimCenter") { nombreBD = "Claim"; } client.Datasets.CreateOrUpdate(DatosGrales.resourceGroup, DatosGrales.dataFactoryName, "Dataset_Descompresion_" + nombreBD + "_DataLakeStore_" + nombreTablas[i], DataLakeDataset); Console.Write((i + 1) + ". Dataset_Descompresion_" + nombreBD + "_DataLakeStore_" + nombreTablas[i] + " creado.\n"); } }
private static void createLakeDatasetsDescomp(DataFactoryManagementClient client) { var nombreTablas = DatosGrales.traerTablas(false); AzureDataLakeStoreDataset dlsd1; TextFormat txtfrm1; DatasetResource DataLakeDataset1; for (int i = 1050; i < nombreTablas.Length; i++) { string nombreBD = DatosGrales.nombreBD; dlsd1 = new AzureDataLakeStoreDataset(); dlsd1.LinkedServiceName = new LinkedServiceReference(DatosGrales.linkedServiceLake); dlsd1.FolderPath = "Raw Data/" + nombreBD + "/"; dlsd1.FileName = nombreTablas[i] + ".csv"; txtfrm1 = new TextFormat(); txtfrm1.ColumnDelimiter = "|"; txtfrm1.EncodingName = "Windows-1252"; //default es utf-8, pero no acepta acentos. txtfrm1.FirstRowAsHeader = true; txtfrm1.TreatEmptyAsNull = true; //txtfrm1.NullValue = ""; dlsd1.Format = txtfrm1; DataLakeDataset1 = new DatasetResource(dlsd1); if (nombreBD == "ClaimCenter") { nombreBD = "Claim"; } client.Datasets.CreateOrUpdate(DatosGrales.resourceGroup, DatosGrales.dataFactoryName, "Dataset_" + nombreBD + "_DataLakeStore_" + nombreTablas[i], DataLakeDataset1); Console.Write((i + 1) + ". Dataset_" + nombreBD + "_DataLakeStore_" + nombreTablas[i] + " creado.\n"); } }
private static void crearPipesSubidaConCompresion(DataFactoryManagementClient client) { string nombreBD = DatosGrales.nombreBD; string[] nombreTablas = DatosGrales.traerTablas(true); string[] nombreTablasParaCompresion = DatosGrales.traerTablas(false); List <Activity> la; CopyActivity ca; List <DatasetReference> inp; DatasetReference dr; List <DatasetReference> outp; DatasetReference drO; CopyActivity ca2; List <ActivityDependency> dep; string nombreTablaParaConsulta; List <DatasetReference> inp1; DatasetReference dr1; List <DatasetReference> outp1; DatasetReference drO1; PipelineResource pipe1; string consulta; if (nombreBD == "ClaimCenter") { nombreBD = "Claim"; } for (int i = 790; i < nombreTablas.Length; i++) { if (esTablaEspecial(nombreTablas[i])) { //no creo nada porque tiene un trato especial } else { nombreTablaParaConsulta = nombreTablas[i].Replace('-', '.'); consulta = DatosGrales.queryMagica(nombreTablaParaConsulta, 0); la = new List <Activity>(); ca = new CopyActivity(); ca.Name = "CA-Compresion-" + nombreTablas[i]; ca.Source = new SqlSource(null, 3, null, consulta); ca.Sink = new AzureDataLakeStoreSink(); inp = new List <DatasetReference>(); //dr = new DatasetReference("Dataset_" + nombreBD + "_" + nombreTablas[i]); dr = new DatasetReference("Dataset_ClaimCenter_" + nombreTablas[i]); inp.Add(dr); ca.Inputs = inp; outp = new List <DatasetReference>(); drO = new DatasetReference("Dataset_Descompresion_" + nombreBD + "_DataLakeStore_" + nombreTablasParaCompresion[i]); outp.Add(drO); ca.Outputs = outp; la.Add(ca); ca2 = new CopyActivity(); ca2.Name = "CA-Descompresion-" + nombreTablas[i]; ca2.Source = new SqlSource(); ca2.Sink = new AzureDataLakeStoreSink(); string[] condiciones = { "Succeeded" }; dep = new List <ActivityDependency>(); dep.Add(new ActivityDependency("CA-Compresion-" + nombreTablas[i], condiciones)); ca2.DependsOn = dep; inp1 = new List <DatasetReference>(); dr1 = new DatasetReference("Dataset_Descompresion_" + nombreBD + "_DataLakeStore_" + nombreTablasParaCompresion[i]); inp1.Add(dr1); ca2.Inputs = inp1; outp1 = new List <DatasetReference>(); drO1 = new DatasetReference("Dataset_" + nombreBD + "_DataLakeStore_" + nombreTablasParaCompresion[i]); outp1.Add(drO1); ca2.Outputs = outp1; la.Add(ca2); pipe1 = new PipelineResource(); pipe1.Activities = la; client.Pipelines.CreateOrUpdate(DatosGrales.resourceGroup, DatosGrales.dataFactoryName, "Pipeline-Sql-DataLake-ConCompresion-" + nombreBD + "-" + nombreTablas[i], pipe1); Console.Write((i + 1) + ". Pipeline-Sql-DataLake-ConCompresion-" + nombreBD + "-" + nombreTablas[i] + " creado.\n"); } } }