Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Włączanie trybu DirectQuery dla łącznika opartego na odBC

Użycie wbudowanej funkcji Odbc.DataSource języka M jest zalecanym sposobem tworzenia łączników niestandardowych dla źródeł danych, które mają istniejący sterownik ODBC i/lub obsługują składnię zapytań SQL. Zawijanie funkcji Odbc.DataSource umożliwia łącznikowi dziedziczenie domyślnego zachowania składania zapytań na podstawie możliwości zgłoszonych przez sterownik. To zachowanie umożliwia aparatowi języka M generowanie instrukcji SQL na podstawie filtrów i innych przekształceń zdefiniowanych przez użytkownika w środowisku dodatku Power Query bez konieczności podawania tej logiki w samym łączniku.

Rozszerzenia ODBC mogą opcjonalnie włączać tryb DirectQuery, umożliwiając usłudze Power BI dynamiczne generowanie zapytań w czasie wykonywania bez konieczności tworzenia modelu danych użytkownika.

Uwaga

Włączenie obsługi trybu DirectQuery zwiększa poziom trudności i złożoności łącznika. Po włączeniu trybu DirectQuery usługa Power BI uniemożliwia wyrównywaniu aparatu M dla operacji, których nie można w pełni wypchnąć do bazowego źródła danych.

W tym artykule założono, że znajomość tworzenia podstawowego łącznika niestandardowego.

Zapoznaj się z przykładem sqlODBC, aby zapoznać się z większością przykładów kodu w poniższych sekcjach. Inne przykłady można znaleźć w katalogu przykładów ODBC.

Funkcje rozszerzalności ODBC

Aparat M udostępnia dwie funkcje źródła danych powiązane z ODBC: Odbc.DataSource i Odbc.Query.

Funkcja Odbc.DataSource udostępnia domyślną tabelę nawigacji ze wszystkimi bazami danych, tabelami i widokami z systemu. Ta funkcja obsługuje również składanie zapytań i umożliwia korzystanie z szeregu opcji dostosowywania. Większość rozszerzeń opartych na protokole ODBC używa tej funkcji jako podstawowej funkcji rozszerzalności. Funkcja akceptuje dwa argumenty — parametry połączenia i rekord opcji w celu zapewnienia przesłonięć zachowania.

Funkcja Odbc.Query umożliwia wykonywanie instrukcji SQL za pomocą sterownika ODBC. Działa jako przekazywanie do wykonywania zapytań. W przeciwieństwie do funkcji Odbc.DataSource nie udostępnia funkcji składania zapytań i wymaga, aby zapytania SQL zostały dostarczone przez łącznik (lub użytkownika końcowego). Podczas tworzenia łącznika niestandardowego ta funkcja jest zwykle używana wewnętrznie do uruchamiania zapytań w celu pobierania metadanych, które mogą nie być uwidocznione za pośrednictwem zwykłych kanałów ODBC. Funkcja akceptuje dwa argumenty — parametry połączenia i zapytanie SQL.

Wskazówki dotyczące funkcji źródła danych

Łączniki niestandardowe mogą akceptować dowolną liczbę argumentów funkcji. Jednak aby zachować spójność z wbudowanymi funkcjami źródła danych dostarczanymi z dodatkiem Power Query, zalecane są następujące wskazówki:

  • Wymagaj minimalnego zestawu parametrów używanych do nawiązania połączenia z serwerem. Mniejsza liczba parametrów, które użytkownicy końcowi muszą podać, tym łatwiej jest użyć łącznika.

  • Chociaż można zdefiniować parametry o stałej liczbie wartości (na przykład lista rozwijana w interfejsie użytkownika), parametry są wprowadzane przed uwierzytelnieniem użytkownika. Wszystkie wartości, które można odnaleźć programowo po uwierzytelnieniu użytkownika (na przykład nazwa katalogu lub bazy danych), powinny być wybierane za pośrednictwem nawigatora. Domyślne zachowanie funkcji Odbc.DataSource polega na zwracaniu hierarchicznej tabeli nawigacji składającej się z nazw wykazu (bazy danych), schematu i tabeli. Jednak to zachowanie może zostać zastąpione w ramach łącznika.

  • Jeśli uważasz, że użytkownicy zazwyczaj wiedzą, jakie wartości należy wprowadzić dla elementów wybranych z nawigatora (na przykład nazwy bazy danych), wprowadź te parametry jako opcjonalne. Parametry, które można odnaleźć programowo, nie powinny być wymagane.

  • Ostatnim parametrem funkcji powinien być opcjonalny rekord o nazwie "options". Ten parametr zwykle umożliwia zaawansowanym użytkownikom ustawianie typowych właściwości związanych z ODBC (takich jak CommandTimeout), ustawianie przesłonięć zachowania specyficznych dla łącznika i umożliwia przyszłe rozszerzalność bez wpływu na zgodność z poprzednimi wersjami funkcji.

  • Argumenty związane z zabezpieczeniami/poświadczeniami nigdy nie muszą być częścią parametrów funkcji źródła danych, ponieważ wartości wprowadzone w oknie dialogowym łączenia są utrwalane w zapytaniu użytkownika. Parametry związane z poświadczeniami należy określić jako część obsługiwanych metod uwierzytelniania łącznika.

Domyślnie wszystkie wymagane parametry funkcji źródła danych są uwzględniane w wartości Ścieżka źródła danych używanej do identyfikowania poświadczeń użytkownika.

Chociaż interfejs użytkownika wbudowanej funkcji Odbc.DataSource udostępnia listę rozwijaną, która umożliwia użytkownikowi wybranie nazwy DSN, ta funkcja nie jest dostępna za pośrednictwem rozszerzalności. Jeśli konfiguracja źródła danych jest wystarczająco złożona, aby wymagać w pełni konfigurowalnego okna dialogowego konfiguracji, zalecamy, aby użytkownicy końcowi musieli wstępnie skonfigurować nazwę DSN systemu i mieć funkcję w nazwie DSN jako pole tekstowe.