ADOMD.NETFunkcje klienta
ADOMD.NET, jak z innymi Microsoft .NET Framework dostawców, służy jako mostka między aplikacją i źródło danych.Jednak ADOMD.SIEĆ jest w odróżnieniu od innych.NET Framework dostawców danych w tym ADOMD.NET współpracuje z dane analityczne.Aby pracować z dane analityczne, ADOMD.NET obsługuje funkcje zupełnie inaczej niż inne.NET Framework dostawców danych.ADOMD.NET umożliwia nie tylko do pobierania danych, ale również do pobierania metadane i zmienianie struktury magazynu dane analityczne:
Pobieranie metadanych
Aplikacje można dowiedzieć się więcej o danych, które mogą być pobierane ze źródło danych za pomocą pobierania metadane, za pomocą zestawów wierszy schematu lub modelu obiektowego.Informacje, takie jak typy każdego kluczowy wskaźnik wydajności (KPI) są dostępne, wymiary moduł i parametry wymagane przez modeli wyszukiwania są wszystkie wykrywalne.Metadane są najważniejsze dynamiczne aplikacji, które wymagają danych wejściowych użytkownika, aby określić typ, zasięg i zakres danych, mają być pobrane.Przykładami Query Analyzer, Microsoft Excel i innych narzędzi podczas badania.Metadane są mniejsze znaczenie statyczne aplikacji, które wykonują zestaw wstępnie zdefiniowanych akcji.Aby uzyskać więcej informacji: Pobieranie metadanych ze źródła danych analitycznych.
Pobieranie danych
Pobieranie danych jest rzeczywista pobierania informacji przechowywanych w danych źródło.Pobieranie danych są podstawową funkcja z "static" aplikacje, które wiedzą, struktura źródło danych.Pobieranie danych jest również wynik końcowy "dynamiczny" aplikacje.Wartość KWW w danym czas dnia, liczby rowerów sprzedanych w ciągu ostatniej godziny dla każdego sklepu i czynników dotyczących rocznej wydajności pracowników należą do nich dane, które mogą być pobierane.Pobieranie danych jest istotne dla każdej aplikacji podczas badania.Aby uzyskać więcej informacji: Pobieranie danych ze źródła danych analitycznych.
Zmiana struktury danych analitycznych
ADOMD.NET można również nastąpiła zmiana struktury magazynu dane analityczne.Chociaż jest to zwykle wykonywane przez model obiektów AMO (analiza zarządzania obiektami), można użyć ADOMD.NET, aby wysłać Analysis Services poleceń skryptów języka (ASSL), aby utworzyć, zmodyfikować lub usuwanie obiektów na serwerze.Aby uzyskać więcej informacji: Wykonywanie poleceń przeciwko źródło danych analitycznych, Analysis Management Objects (AMO), Analysis Services Skorowidz języka skryptów
Pobieranie metadane, pobieranie danych i zmiana struktury danych każdego występują na konkretny punkt w przepływie pracy typową ADOMD.NET aplikacji.
Typowy przepływ procesu
Tradycyjne ADOMD.NET aplikacje zwykle wykonaj samego przepływu pracy podczas pracy z bazą danych analitycznych:
Najpierw należy nawiązać połączenia z bazą danych, za pomocą AdomdConnection obiektu.Po otwarciu połączenia, AdomdConnection obiekt udostępnia metadane dotyczące serwera, do którego jest podłączony.W aplikacji dynamicznych, niektóre z tych informacji jest zazwyczaj wyświetlana dla użytkownika, dzięki czemu użytkownik może dokonać wyboru, takich jak moduł do kwerendy.Połączenie utworzone podczas tej czynności mogą być ponownie użyte wielokrotnie przez aplikację, zmniejszając obciążenie.
Aby uzyskać więcej informacji: Ustanawianie połączenia w ADOMD.NET
Po ustanowieniu połączenia, dynamicznych aplikacji będzie następnie kwerendy do serwera dla bardziej szczegółowych metadane.Statyczne aplikacji programistę wie wyprzedzeniem jakie obiekty aplikacji będzie badanie i dlatego nie trzeba pobrać metadane.Można metadanych, który jest pobierany przez aplikację i użytkownika do następnego kroku.
Aby uzyskać więcej informacji: Pobieranie metadanych ze źródła danych analitycznych
Następnie aplikacja wykonuje polecenie na serwerze.To polecenie może być dla celów pobierania dodatkowych metadane, pobieranie danych lub modyfikowanie struktura bazy danych.Dla każdego z tych zadań, aplikacja może kwerendy ustalona wcześniej lub upewnij użycia nowo pobranych metadane w celu utworzenia dodatkowych kwerend.
Aby uzyskać więcej informacji: Pobieranie metadanych ze źródła danych analitycznych, Pobieranie danych ze źródła danych analitycznych, Wykonywanie poleceń przeciwko źródło danych analitycznych
Po poleceniu została wysłana do serwera, serwer zaczyna zwracać metadane lub danych do klient.Informacje te można przeglądać za pomocą CellSet obiekt, AdomdDataReader obiekt, lub System.XmlReader obiektu.
Aby zilustrować tradycyjnych przepływu pracy, poniższy przykład zawiera metoda, która otwiera połączenie z bazą danych, wykonuje polecenie przeciwko moduł znane i pobiera wyniki w zestaw komórek.Następnie zwraca zestawu komórek zawierających ciąg rozdzielany tabulatorami kolumna nagłówki i nagłówki wierszy danych komórka.
string ReturnCommandUsingCellSet()
{
//Create a new string builder to store the results
System.Text.StringBuilder result = new System.Text.StringBuilder();
//Connect to the local server
using (AdomdConnection conn = new AdomdConnection("Data Source=localhost;"))
{
conn.Open();
//Create a command, using this connection
AdomdCommand cmd = conn.CreateCommand();
cmd.CommandText = @"
WITH MEMBER [Measures].[FreightCostPerOrder] AS
[Measures].[Reseller Freight Cost]/[Measures].[Reseller Order Quantity],
FORMAT_STRING = 'Currency'
SELECT
[Geography].[Geography].[Country].&[United States].Children ON ROWS,
[Date].[Calendar].[Calendar Year] ON COLUMNS
FROM [Adventure Works]
WHERE [Measures].[FreightCostPerOrder]";
//Execute the query, returning a cellset
CellSet cs = cmd.ExecuteCellSet();
//Output the column captions from the first axis
//Note that this procedure assumes a single member exists per column.
result.Append("\t");
TupleCollection tuplesOnColumns = cs.Axes[0].Set.Tuples;
foreach (Tuple column in tuplesOnColumns)
{
result.Append(column.Members[0].Caption + "\t");
}
result.AppendLine();
//Output the row captions from the second axis and cell data
//Note that this procedure assumes a two-dimensional cellset
TupleCollection tuplesOnRows = cs.Axes[1].Set.Tuples;
for (int row = 0; row < tuplesOnRows.Count; row++)
{
result.Append(tuplesOnRows[row].Members[0].Caption + "\t");
for (int col = 0; col < tuplesOnColumns.Count; col++)
{
result.Append(cs.Cells[col, row].FormattedValue + "\t");
}
result.AppendLine();
}
conn.Close();
return result.ToString();
} // using connection
}