Example #1
0
        static void TestExport()
        {
            string       databaseName       = "Microsoft_SQLServer_AnalysisServices";
            const string serverName         = @"http://*****:*****@"c:\temp\test4.vpax";

            Console.WriteLine("Exporting...");

            //
            // Get Dax.Model object from the SSAS engine
            //
            Dax.Metadata.Model model = Dax.Metadata.Extractor.TomExtractor.GetDaxModel(serverName, databaseName, applicationName, applicationVersion);

            //
            // Get TOM model from the SSAS engine
            //
            Microsoft.AnalysisServices.Database database = includeTomModel ? Dax.Metadata.Extractor.TomExtractor.GetDatabase(serverName, databaseName) : null;

            //
            // Create VertiPaq Analyzer views
            //
            Dax.ViewVpaExport.Model viewVpa = new Dax.ViewVpaExport.Model(model);

            //
            // Save VPAX file
            //
            // TODO: export of database should be optional
            Dax.Vpax.Tools.VpaxTools.ExportVpax(path, model, viewVpa, database);

            Console.WriteLine("Completed");
        }
Example #2
0
        public static void ExportVPAX(string serverName, string databaseName, string path, bool includeTomModel, string applicationName, string applicationVersion, bool readStatisticsFromData, string modelName)
        {
            //
            // Get Dax.Model object from the SSAS engine
            //
            Dax.Metadata.Model model = Dax.Metadata.Extractor.TomExtractor.GetDaxModel(serverName, databaseName, applicationName, applicationVersion,
                                                                                       readStatisticsFromData: readStatisticsFromData,
                                                                                       sampleRows: 0);

            //
            // Get TOM model from the SSAS engine
            //
            Microsoft.AnalysisServices.Database database = includeTomModel ? Dax.Metadata.Extractor.TomExtractor.GetDatabase(serverName, databaseName): null;

            //
            // Create VertiPaq Analyzer views
            //
            Dax.ViewVpaExport.Model viewVpa = new Dax.ViewVpaExport.Model(model);

            model.ModelName = new Dax.Metadata.DaxName(modelName);

            //
            // Save VPAX file
            //
            // TODO: export of database should be optional
            Dax.Vpax.Tools.VpaxTools.ExportVpax(path, model, viewVpa, database);
        }
Example #3
0
 /// <summary>
 /// Export to VertiPaq Analyzer (VPAX) file
 /// </summary>
 public static void ExportVpax(string path, Dax.Metadata.Model model, Dax.ViewVpaExport.Model viewVpa = null, Microsoft.AnalysisServices.Database database = null)
 {
     using (ExportVpax exportVpax = new ExportVpax(path))
     {
         InternalExportVpax(exportVpax, model, viewVpa, database);
     }
 }
Example #4
0
        static void GenericTest()
        {
            //
            // Retrieve DAX model from database connection
            //
            // String connection for Power Pivot
            // const string serverName = @"http://*****:*****@"localhost\tab19";
            // const string databaseName = "Adventure Works";
            // const string databaseName = "Adventure Works 2012 Tabular";
            // const string databaseName = "EnterpriseBI";
            const string serverName   = "localhost:59700";
            const string databaseName = "ea26c45e-2916-4df9-85b1-efed49126482";
            const string pathOutput   = @"c:\temp\";

            Console.WriteLine("Getting model {0}:{1}", serverName, databaseName);
            var database = Dax.Metadata.Extractor.TomExtractor.GetDatabase(serverName, databaseName);
            var daxModel = Dax.Metadata.Extractor.TomExtractor.GetDaxModel(serverName, databaseName, "TestDaxModel", "0.2", true, 10);

            DumpRelationships(daxModel);


            //
            // Test serialization of Dax.Model in JSON file
            //
            // ExportModelJSON(pathOutput, m);

            Console.WriteLine("Exporting to VertiPaq Analyzer View");

            //
            // Create VertiPaq Analyzer views
            //
            Dax.ViewVpaExport.Model viewVpa = new Dax.ViewVpaExport.Model(daxModel);

            // Save JSON file
            // ExportJSON(pathOutput, export);
            Console.WriteLine($"   Table Count : {viewVpa.Tables.Count()}");
            Console.WriteLine($"   Column Count: {viewVpa.Columns.Count()}");
            string filename = pathOutput + databaseName + ".vpax";

            Console.WriteLine("Saving {0}...", filename);

            // Save VPAX file
            // old internal version ExportVPAX(filename, daxModel, export);
            VpaxTools.ExportVpax(filename, daxModel, viewVpa, database);
            Console.WriteLine("File saved.");
            // ImportExport();

            Console.WriteLine("=================");
            Console.WriteLine($"Loading {filename}...");

            // var content = VpaxTools.ImportVpax(filename);
            // var view2 = new Dax.ViewVpaExport.Model(content.DaxModel);
            Console.WriteLine($"   Table Count : {viewVpa.Tables.Count()}");
            Console.WriteLine($"   Column Count: {viewVpa.Columns.Count()}");
        }
Example #5
0
        /// <summary>
        /// Export to VertiPaq Analyzer (VPAX) stream
        /// </summary>
        public static void ExportVpax(Stream stream, Dax.Metadata.Model model, Dax.ViewVpaExport.Model viewVpa = null, Microsoft.AnalysisServices.Database database = null)
        {
            using (ExportVpax exportVpax = new ExportVpax(stream))
            {
                InternalExportVpax(exportVpax, model, viewVpa, database);
            }

            stream.Position = 0L;
        }
Example #6
0
        /// <summary>
        /// Export VertiPaq Analyzer JSON format (just for test, the same file is embedded in VPAX)
        /// </summary>
        /// <param name="pathOutput"></param>
        /// <param name="export"></param>
        private static void ExportJSON(string pathOutput, Dax.ViewVpaExport.Model export)
        {
            var json = JsonConvert.SerializeObject(
                export,
                Formatting.Indented,
                new JsonSerializerSettings
            {
                PreserveReferencesHandling = PreserveReferencesHandling.None,
                ReferenceLoopHandling      = ReferenceLoopHandling.Error
            });

            System.IO.File.WriteAllText(pathOutput + "export.json", json);
            // Console.WriteLine(json);
        }
Example #7
0
 private void Export_Click(object sender, RoutedEventArgs e)
 {
     if (CurrentVpaModel != null)
     {
         SaveFileDialog saveFileDialog = new SaveFileDialog();
         saveFileDialog.Filter = "VPAX file (*.vpax)|*.vpax";
         if (saveFileDialog.ShowDialog() == true)
         {
             string filename = saveFileDialog.FileName;
             var    viewVpa  = new Dax.ViewVpaExport.Model(CurrentVpaModel.Model);
             DisplayStatus($"Saving {filename} ...");
             Dax.Vpax.Tools.VpaxTools.ExportVpax(filename, CurrentVpaModel.Model, viewVpa);
             DisplayStatus($"VPAX saved to {filename}");
         }
     }
 }
Example #8
0
        static void Main(string[] args)
        {
            //
            // Retrieve DAX model from database connection
            //
            // String connection for Power Pivot
            // const string serverName = @"http://*****:*****@"localhost\tab17";
            // const string databaseName = "AdventureWorks";
            const string databaseName = "Adventure Works 2012 Tabular";
            // const string serverName = "localhost:63041";
            // const string databaseName = "4b071c24-b2e6-49b0-a3b6-93610cfe1d0c";
            const string pathOutput = @"c:\temp\";

            Console.WriteLine("Getting model {0}:{1}", serverName, databaseName);
            var database = Dax.Metadata.Extractor.TomExtractor.GetDatabase(serverName, databaseName);
            var daxModel = Dax.Metadata.Extractor.TomExtractor.GetDaxModel(serverName, databaseName, "TestDaxModel", "0.1");

            //
            // Test serialization of Dax.Model in JSON file
            //
            // ExportModelJSON(pathOutput, m);

            Console.WriteLine("Exporting to VertiPaq Analyzer View");

            //
            // Create VertiPaq Analyzer views
            //
            Dax.ViewVpaExport.Model viewVpa = new Dax.ViewVpaExport.Model(daxModel);

            // Save JSON file
            // ExportJSON(pathOutput, export);

            string filename = pathOutput + databaseName + ".vpax";

            Console.WriteLine("Saving {0}...", filename);

            // Save VPAX file
            // old internal version ExportVPAX(filename, daxModel, export);
            VpaxTools.ExportVpax(filename, daxModel, viewVpa, database);
            Console.WriteLine("File saved.");
            // ImportExport();
        }
Example #9
0
        static void TestExportStream()
        {
            string       databaseName       = "Microsoft_SQLServer_AnalysisServices";
            const string serverName         = @"http://*****:*****@"c:\temp\test5.vpax";

            Console.WriteLine("Exporting...");

            //
            // Get Dax.Model object from the SSAS engine
            //
            Dax.Metadata.Model model = Dax.Metadata.Extractor.TomExtractor.GetDaxModel(serverName, databaseName, applicationName, applicationVersion);

            //
            // Get TOM model from the SSAS engine
            //
            Microsoft.AnalysisServices.Database database = includeTomModel ? Dax.Metadata.Extractor.TomExtractor.GetDatabase(serverName, databaseName) : null;

            //
            // Create VertiPaq Analyzer views
            //
            Dax.ViewVpaExport.Model viewVpa = new Dax.ViewVpaExport.Model(model);

            //
            // Save VPAX file
            //

            using (var stream = File.Open(path, FileMode.Create, FileAccess.ReadWrite))
            {
                Dax.Vpax.Tools.VpaxTools.ExportVpax(stream, model, viewVpa, database);
            }

            using (var fileStream = File.OpenWrite(path))
                using (var memoryStream = new MemoryStream())
                {
                    Dax.Vpax.Tools.VpaxTools.ExportVpax(memoryStream, model, viewVpa, database);
                    memoryStream.CopyTo(fileStream);
                }

            Console.WriteLine("Completed");
        }
Example #10
0
 /// <summary>
 /// Export to VertiPaq Analyzer (VPAX) file
 /// </summary>
 /// <param name="databaseName"></param>
 /// <param name="pathOutput"></param>
 /// <param name="viewVpa"></param>
 /// <param name="database"></param>
 public static void ExportVpax(string path, Dax.Metadata.Model model, Dax.ViewVpaExport.Model viewVpa = null, Microsoft.AnalysisServices.Database database = null)
 {
     using (ExportVpax exportVpax = new ExportVpax(path))
     {
         if (model != null)
         {
             exportVpax.ExportModel(model);
         }
         if (viewVpa != null)
         {
             exportVpax.ExportViewVpa(viewVpa);
         }
         if (database != null)
         {
             exportVpax.ExportDatabase(database);
         }
         exportVpax.Close();
     }
 }
Example #11
0
 internal static void InternalExportVpax(ExportVpax exportVpax, Dax.Metadata.Model model, Dax.ViewVpaExport.Model viewVpa = null, Microsoft.AnalysisServices.Database database = null)
 {
     if (model != null)
     {
         exportVpax.ExportModel(model);
     }
     if (viewVpa != null)
     {
         exportVpax.ExportViewVpa(viewVpa);
     }
     if (database != null)
     {
         exportVpax.ExportDatabase(database);
     }
     exportVpax.Close();
 }