Udostępnij za pośrednictwem


Szczelin DSO do AMO

This topic is to explain to Decision Support Objects (DSO) developers the steps that are required to port existing legacy DSO applications to Analysis Management Objects (AMO), the new object model for programmatically administering Microsoft SQL Server Usługi Analysis Services.

This topic is intended for OLAP database administrators and OLAP developers with experience developing and administering SQL Server 2000 Usługi Analysis Services applications and databases.

SQL Server 2000 została zaprojektowana w obszarze koncepcji obiektu COM, w tym modelu obiektów DSO.Natomiast SQL Server został zaprojektowany i zbudowany w obszarze.Pojęcie netto kod zarządzany dlatego nowy model obiektów zarządzania, AMO, ma być używany z zarządzanego kodu.Niemniej jednak oba modele obiektów są bardzo podobne, można łatwo przenieść z DSO AMO.

Większość aplikacji DSO tworzone są w jednym z następujących sposobów:

  • Jako skompilowanej aplikacji COM, w dowolnym języku, takich jak Visual Basic 6 lub podobne.

  • Jako Windows obsługującym skryptów (WHS), skryptu Visual Basic lub języka jscript.

  • Jako SQL Server 2000 pakiety DTS przy użyciu skryptów ActiveX zadania.

Skompilowanych aplikacjach DSO przeważnie są przenoszone do aplikacji skompilowany kod zarządzany przy użyciu AMO.Wybór języka jest wybór developer. wszystkie języki nadają się jednakowo do pracy z AMO.

Pakiety DTS, które używają DSO wewnątrz zadania skryptu ActiveX można przenieść do Integration Services pakietów przy użyciu zadania skryptu obiekt z języka Visual Basic.NET i AMODTS packages that were built using Usługi Analysis Services Processing Task will have to be ported to SQL Server 2000 Integration Services using new Usługi Analysis Services Processing Tasks.

Applications developed under WHS will have to be ported to either a managed application or to a SQL Server Integration Services package using Script Task object with Visual Basic .NET and AMO.

Łączenie z serwerem

Połączenie z serwerem jest tego samego akcja w obu środowiskach.Oba modele zacząć serwera jako obiekt najwyżej w hierarchii i oba modele mają metoda połączenia, która wymaga nazwa serwera jako parametr ciąg.W AMO, nazwa serwera może być wystąpienie zapisywane w formacie nazwa <ServerName>\<InstanceName>.

W poniższej tabela przedstawiono metoda połączenia na obu modeli obiektów.

DSO (kod vbs)

AMO (kod C#)

AMO (Visual Basic.Kod netto)

dsoServer.Connect "SS2000_Server"

amoServer.Connect("SS2005_Server");

amoServer.Connect("SS2005_Server")

Zarządzanie obiektami

Zarządzanie obiektami w AMO przypomina DSO, ponieważ oba modele obiektów są modele odłączona od serwera.Model rozłączonych oznacza, że działania podejmowane w aplikacji nie są odzwierciedlane w serwera, dopóki są one zobowiązane.Aby zatwierdzanie akcje obu modeli obiektów metoda aktualizacji obiektu zmianie lub najbliższego obiektu nadrzędnego.

Tworzenie obiektów

Tworzenie obiektów jest bardzo podobne w obu modeli.W przypadku modeli tworzony jest nowy obiekt przez dodanie go do kolekcja obiektów przy użyciu metoda Add z kolekcja obiektu.

W DSO większość czynności są wykonywane przy użyciu interfejs MDStores zamiast klasy obiektu.W AMO akcje są wykonywane bezpośrednio za pomocą klasy obiektu.

Zobacz poniższe przykłady.

DSO (vbs)

AMO (C#)

AMO (Visual Basic.NET)

set dsoDB = dsoServer.MDStores.AddNew("NewDb")

dsoServer.Update

amoDB = amoServer.Databases.Add("NewDb");

amoDB.Update();

amoDB = amoServer.Databases.Add("NewDb")

amoDB.Update()

Set dsoCube = dsoDB.MDStores.AddNew("NewCube")

dsoDB.Update

amoCube = amoDB.Cubes.Add("NewCube");

amoCube.Update()

amoCube = amoDB.Cubes.Add("NewCube")

amoCube.Update()

Set dsoMeasure = dsoCube.Measures.AddNew("NewMeasure")

dsoCube.Update

//in SQL Server, Analysis Services cubes can have more than 1 measure group. A measure group was required before adding the measure

amoMG = amoCube.MeasureGroups.Add("NewMeasureGroup");

amoMeas = amoMG.Measures.Add("NewMeasure");

amoMG.Update()

'in SQL Server, Analysis Services cubes can have more than 1 measure group. A measure group was required before adding the measure

amoMG = amoCube.MeasureGroups.Add("NewMeasureGroup")

amoMeas = amoMG.Measures.Add("NewMeasure")

amoMG.Update()

Usuwanie obiektów

W DSO wszystkie obiekty są usuwane z ich odpowiednimi kolekcja i aktualizacja do najbliższego obiektu nadrzędnego jest niezbędne w celu ukończenia usuwania obiektu.W AMO obiekty można upuścić same i usuwane z serwera w jednym kroku, aktualizacja nie jest konieczne.

DSO (vbs)

AMO (C#)

AMO (Visual Basic.NET)

'Remove FoodMart 2000 database

dsoServer.MDStores.Remove("FoodMart 2000")

dsoServer.Update

//being amoDB a database object

//the database pointed by amoDB is dropped from system

amoDB.Drop();

'being amoDB a database object

'the database pointed by amoDB is dropped from system

amoDB.Drop()

'Remove NewSales cube

dsoDB.MDStores.Remove("NewSales")

dsoDB.Update

//being amoCube a cube object

//the cube pointed by amoCube is dropped from system

amoCube.Drop();

'being amoCube a cube object

'the cube pointed by amoCube is dropped from system

amoCube.Drop()

Zmienianie obiektów

Zmiana obiekty DSO oraz AMO jest podobna, modyfikować właściwości obiektu i na końcu metoda Update jest wystawiony zapisać wszystkie zmiany na serwerze.

DSO (vbs)

AMO (C#)

AMO (Visual Basic.NET)

' Start cube definition

' Set Description for new cube

dsoCube.Description = "simplified sales cube"

' Provide the data source for the cube.

dsoCube.DataSources.AddNew dsoDB.DataSources("FoodMart").Name

' Update cube to save changes

dsoCube.Update

//Start cube definition

//Set Description for new cube

amoCube.Description = "simplified sales cube";

//Provide the data source for the cube.

amoCube.Source = new DataSourceViewBinding("FoodMart");

//Update cube to save changes

amoCube.Update();

' Start cube definition

' Set Description for new cube

amoCube.Description = "simplified sales cube"

' Provide the data source for the cube.

amoCube.Source = new DataSourceViewBinding("FoodMart")

' Update cube to save changes

amoCube.Update()

Przetwarzanie obiektów

Przetwarzanie obiektów w obu modeli jest podobna, ponieważ albo model metoda Process() jest wystawiony z obiektu, który wymaga przetwarzania lub jednego z jego przodków.Jeśli metoda Process() jest wystawiony na jednym z członków nadrzędnych, przetwarzania obiektu jest związany z wartością domyślną dla przetwarzania obiektów zdefiniowanych na element nadrzędny.

DSO (vbs)

AMO (C#)

AMO (Visual Basic.NET)

' Default processing for all objects in a database

dsoDB.Process

//Default processing for all objects in a database

dsoDB.Process( ProcessType.ProcessDefault);

//Default processing for all objects in a database

dsoDB.Process(( ProcessType.ProcessDefault)

' Full processing a cube

dsoCube.Process 1 ' 1 = FullProcess

//Full processing a cube

amoCube.Process( ProcessType.ProcessFull);

' Full processing a cube

amoCube.Process( ProcessType.ProcessFull)

Podsumowanie

Przenoszenie DSO kod do kodu AMO jest prosta.Oba modele obiektów są bardzo zbliżone do siebie, co ułatwia proces przejścia.

Zaleca się, aby dowiedzieć się nowe opcje w AMO aktualizacji i przetwarzanie obiektów, które nie istnieją w DSO.Zalecane jest również, jak przy użyciu danychźródłoprzeglądać obiekty w AMO, ponieważ te są obecnie źródło obiektów dla większości obiektów AMO.Aby uzyskać więcej informacji, zobacz Przenoszenie z DSO 8.0, Przedstawiamy AMO klas, i Analysis Management Objects (AMO).