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"); }
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); }
/// <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); } }
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()}"); }
/// <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; }
/// <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); }
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}"); } } }
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(); }
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"); }
/// <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(); } }
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(); }