示例#1
0
        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");
        }
示例#2
0
        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");
            }
        }
示例#3
0
        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");
                }
            }
        }
示例#4
0
        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");
        }
示例#5
0
        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");
            }
        }
示例#6
0
        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);
                //    }
                //}
            }
        }
示例#7
0
        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 =(");
            }
        }
示例#8
0
        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");
            }
        }
示例#9
0
        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");
            }
        }
示例#10
0
        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");
                }
            }
        }