Udostępnij za pośrednictwem


Praca z wymiarów i poziomów

Ostrzeżenie

  Ta funkcja zostanie usunięta z następnej wersji programu Microsoft SQL Server. Nie należy stosować tej funkcji w nowych projektach oraz jak najszybciej należy zmodyfikować aplikacje, w których obecnie jest używana ta funkcja.

Wymiary moduł przechowywania danych pochodzących z relacyjnych baz danych, tabel i zawierać kategorii danych, które chcesz analizować.

Wymiary, należy utworzyć powinny być różne kategorie, które chcesz dodać do modułów w bazie danych (takich jak czas, nabywcy edukacji i wiek nabywcy).Wymiar można utworzyć z tabela pojedynczego wymiaru (schemat gwiazdy) lub z wielu tabel wymiarów (schemat płatka śniegu).Wymiary są klasyfikowane jako wymiary standardowe lub czas, w zależności od typu danych odpowiednich kolumna tabela wymiarów.

Kolekcje wymiary są zawarte w obiekty ClassType clsDatabase, clsCube, clsPartition, i clsAggregation.The dimension objects contained within each of these collections are of respective ClassTypes clsDatabaseDimension, clsCubeDimension, clsPartitionDimension, and clsAggregationDimension.

Przykład listy wymiarów wyświetla listę istniejących wymiary i ich powiązanych poziomów.Przykład dodawanie wymiarów tworzy nowe wymiary i poziomy.

Lista wymiarów

Dimensions kolekcja DSO.Server obiekt zawiera wszystkie wymiary udostępnionego na serwerze analizy, jak pokazano na przykładzie kodu.

Poniższy przykład kodu pokazuje hierarchicznego charakteru wymiary i pozioms przez aukcji pozioms priorytetu dla każdego wymiar zawarte w bazie danych, co na danym serwerze analizy drukowania podstawowe właściwości każdego wymiar i poziom w okienku bezpośrednim:

Private Sub ListDimensions()
    Dim dsoServer As New DSO.Server
    Dim dsoDB As DSO.MDStore
    Dim dsoDim As DSO.Dimension
    Dim dsoLev As DSO.Level

    ' Create a connection to the Analysis server.
    dsoServer.Connect "LocalHost"

    ' Enumerate databases on a server.
    For Each dsoDB In dsoServer.MDStores
        Debug.Print "DATABASE: " & dsoDB.Name & " - " & _
            dsoDB.Description

        ' Enumerate dimensions in a database.
        For Each dsoDim In dsoDB.Dimensions
            Debug.Print "    Dimension: " & dsoDim.Name

            ' Enumerate levels in a dimension.
            For Each dsoLev In dsoDim.Levels
                Debug.Print "        Level: " & dsoLev.Name
            Next
        Next
    Next

End Sub

Dodaj wymiary i poziomy

Aby dodać wymiar, AddNew metoda Dimensions kolekcja dla MDStore obiekt bazy danych jest używany.Po utworzeniu nowego wymiar w ten sposób poziomy są dodawane przy użyciu AddNew metoda Levels kolekcja nowy Dimension obiektu.

Dodaje się następujący przykład kodu Products wymiar z dwoma poziomami Brand Name i Product Nameoraz Stores wymiar z czterech poziomów, Store Country, Store State, Store City i Store ID, do TestDB bazy danych.Ponadto Store ID poziom właściwość element członkowski o nazwie Store SQFT skojarzone z typie.Poniższy diagram przedstawia graficznie relacje.

Aby uzyskać więcej informacji na temat właściwości element członkowski Zobacz clsMemberProperty.

Ostrzeżenie

TestDB Bazy danych jest tworzona za pomocą wcześniejszej przykłady w tym temacie.Aby uzyskać więcej informacji, zobacz pracy z bazami danych.

Poniższy przykład kodu dodaje się dwa nowe wymiary do TestDB bazy danych:

Private Sub AddDimensions()
    Dim dsoServer As New DSO.Server
    Dim dsoDB As DSO.MDStore
    Dim dsoDS As DSO.DataSource
    Dim dsoDim As DSO.Dimension
    Dim dsoLev As DSO.Level
    Dim dsoMember As DSO.MemberProperty

    Dim strDBName As String

    ' Constants used for ColumnType property
    ' of the DSO.Level object.
    ' Note that these constants are identical to
    ' those used in ADO in the DataTypeEnum enumeration.
    Const adWChar = 130
    Const adInteger = 3
    Const adDouble = 5

    ' Initialize variables for the database name.
    strDBName = "TestDB"

    ' Create a connection to the Analysis server.
    dsoServer.Connect "LocalHost"

    ' Set the database object.
    Set dsoDB = dsoServer.MDStores(strDBName)

    ' Set the data source for the database object.
    ' A data source is required to run this example.
    If dsoDB.DataSources.Count = 0 Then
        MsgBox "Database " & dsoDB.Name & _
            " has no data sources."
    Else
        Set dsoDS = dsoDB.DataSources(1)
    End If

    ' Create Products dimension and levels.
    Set dsoDim = dsoDB.Dimensions.AddNew("Products")
    Set dsoDim.DataSource = dsoDS   ' Dimension data source
    dsoDim.FromClause = "product"   ' Related table
    dsoDim.JoinClause = ""          ' Used in snowflake schema

    ' Add Brand Name level.
    Set dsoLev = dsoDim.Levels.AddNew("Brand Name")
    dsoLev.MemberKeyColumn = """product"".""brand_name"""
    dsoLev.ColumnSize = 255         ' Column data size in bytes
    dsoLev.ColumnType = adWChar     ' Column data type
    dsoLev.EstimatedSize = 1        ' Distinct members in column

    ' Add Product Name level.
    Set dsoLev = dsoDim.Levels.AddNew("Product Name")
    dsoLev.MemberKeyColumn = """product"".""product_name"""
    dsoLev.ColumnSize = 255
    dsoLev.ColumnType = adWChar
    dsoLev.EstimatedSize = 1

    ' Update the Products dimension.
    dsoDim.Update

    ' Inform the user.
    MsgBox "Dimension " & dsoDim.Name & " added to " & _
        dsoDim.DataSource.Name & " data source."

    ' Create Stores dimension and levels.
    Set dsoDim = dsoDB.Dimensions.AddNew("Stores")
    Set dsoDim.DataSource = dsoDS   ' Dimension data source
    dsoDim.FromClause = "store"     ' Related table
    dsoDim.JoinClause = ""          ' Used in snowflake schema

    ' Add Store Country level.
    Set dsoLev = dsoDim.Levels.AddNew("Store Country")
    dsoLev.MemberKeyColumn = """store"".""store_country"""
    dsoLev.ColumnSize = 50          ' Column data size in bytes
    dsoLev.ColumnType = adWChar     ' Column data type
    dsoLev.EstimatedSize = 1        ' Distinct members in column

    ' Add Store State level.
    Set dsoLev = dsoDim.Levels.AddNew("Store State")
    dsoLev.MemberKeyColumn = """store"".""store_state"""
    dsoLev.ColumnSize = 50
    dsoLev.ColumnType = adWChar
    dsoLev.EstimatedSize = 1

    ' Add Store City level.
    Set dsoLev = dsoDim.Levels.AddNew("Store City")
    dsoLev.MemberKeyColumn = """store"".""store_city"""
    dsoLev.ColumnSize = 50
    dsoLev.ColumnType = adWChar
    dsoLev.EstimatedSize = 1

    ' Add Store ID level.
    Set dsoLev = dsoDim.Levels.AddNew("Store ID")
    dsoLev.MemberKeyColumn = """store"".""store_ID"""
    dsoLev.ColumnSize = 4
    dsoLev.ColumnType = adInteger
    dsoLev.EstimatedSize = 1

    ' Add a member property to the Store ID level.
    Set dsoMember = dsoLev.MemberProperties.AddNew("Store SQFT", _
        sbclsRegular)
    dsoMember.Description = "Store size in square feet"
    dsoMember.SourceColumn = """store"".""store_sqft"""
    dsoMember.ColumnSize = 4
    dsoMember.ColumnType = adDouble

    ' Update the Stores dimension.
    dsoDim.Update

    ' Inform the user.
    MsgBox "Dimension " & dsoDim.Name & " added to " & _
        dsoDim.DataSource.Name & " data source."

End Sub

Zobacz także

Odwołanie

Koncepcje