public static string Run([ActivityTrigger] string input, ILogger log)
        {
            log.LogInformation($"Azure Analysis Services Partion Manager started at: {DateTime.Now}");
            try
            {
                /* read from ASPP_ConfigurationLoggingDB */
                List <ModelConfiguration> modelsConfig = InitializeFromDatabase();

                /* loop through Model Config */
                foreach (ModelConfiguration modelConfig in modelsConfig)
                {
                    /* grab user/pw for AzureAS authentication */
                    String azure_AppID  = System.Environment.GetEnvironmentVariable("CONNSTR_APPID");
                    String azure_AppKey = System.Environment.GetEnvironmentVariable("CONNSTR_APPKEY");

                    /* apparently you can do it this way as well */
                    modelConfig.UserName = azure_AppID;
                    modelConfig.Password = azure_AppKey;

                    /* perform processing */
                    PartitionProcessor.PerformProcessing(modelConfig, ConfigDatabaseHelper.LogMessage);
                }
            }
            catch (Exception e)
            {
                log.LogInformation($"Azure Analysis Services Partion Manager exception: {e.ToString()}");
            }

            log.LogInformation($"Azure Analysis Services Partion Manager finished at: {DateTime.Now}");
            return("1");
        }
        public static async Task <HttpResponseMessage> ProcessPartitions(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequestMessage req,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            var models = InitializeFromDatabase();

            foreach (ModelConfiguration modelConfig in models)
            {
                PartitionProcessor.PerformProcessing(log, modelConfig, LogMessage);
            }
            return(req.CreateResponse(HttpStatusCode.OK));
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            try
            {
                List <ModelConfiguration> modelsConfig;
                if (!UseDatabase)
                {
                    modelsConfig = InitializeAdventureWorksInline();
                }
                else
                {
                    modelsConfig = InitializeFromDatabase();
                }

                foreach (ModelConfiguration modelConfig in modelsConfig)
                {
                    if (!modelConfig.IntegratedAuth) //For Azure AS
                    {
                        Console.WriteLine();
                        Console.Write("User name for AS server: ");
                        modelConfig.UserName = Console.ReadLine();
                        Console.Write("Password for AS server: ");
                        modelConfig.Password = ReadPassword();
                    }

                    //Most important method:
                    PartitionProcessor.PerformProcessing(modelConfig, LogMessage);
                }
            }
            catch (Exception exc)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine();
                Console.WriteLine(exc.Message, null);
            }

            Console.WriteLine("Press any key to exit.");
            Console.ReadKey();
        }
Exemplo n.º 4
0
        static int Main(string[] args)
        {
            try
            {
                #region Set defaults for merging & read command-line arguments if provided

                string      mergeTable            = "Internet Sales";
                Granularity mergeTargetGranuarity = Granularity.Yearly;
                string      mergePartitionKey     = "2012";
                bool        help;

                ParseArgs(args, ref mergeTable, ref mergeTargetGranuarity, ref mergePartitionKey, out help);
                if (help)
                {
                    return(0); //ERROR_SUCCESS
                }
                #endregion


                if (_executionMode == ExecutionMode.InitializeInline)
                {
                    //Perform Processing
                    PartitionProcessor.PerformProcessing(InitializeInline(), LogMessage);
                }
                else
                {
                    List <ModelConfiguration> modelsConfig = InitializeFromDatabase();

                    foreach (ModelConfiguration modelConfig in modelsConfig)
                    {
                        SetCredentials(modelConfig); //For Azure AS

                        switch (_executionMode)
                        {
                        case ExecutionMode.InitializeFromDatabase:
                            //Perform Processing
                            PartitionProcessor.PerformProcessing(modelConfig, LogMessage);
                            break;

                        case ExecutionMode.MergePartitions:
                            //Perform Merging
                            PartitionProcessor.MergePartitions(modelConfig, LogMessage, mergeTable, mergeTargetGranuarity, mergePartitionKey);
                            break;

                        case ExecutionMode.DefragPartitionedTables:
                            //Perform Defrag
                            PartitionProcessor.DefragPartitionedTables(modelConfig, LogMessage);
                            break;

                        default:
                            break;
                        }
                    }
                }
            }
            catch (Exception exc)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine();
                Console.WriteLine(exc.Message);
                Console.WriteLine();
                Console.ForegroundColor = ConsoleColor.White;

                if (exc is ArgumentException)
                {
                    return(160); //ERROR_BAD_ARGUMENTS
                }
                else
                {
                    return(1360); //ERROR_GENERIC_NOT_MAPPED
                }
            }
            finally
            {
                if (Debugger.IsAttached)
                {
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.WriteLine("Press any key to exit.");
                    Console.ReadKey();
                }
            }

            return(0); //ERROR_SUCCESS
        }