Mengaktifkan DirectQuery untuk konektor berbasis ODBC
Menggunakan fungsi Odbc.DataSource bawaan M adalah cara yang disarankan untuk membuat konektor kustom untuk sumber data yang memiliki driver ODBC dan/atau mendukung sintaks kueri SQL. Membungkus fungsi Odbc.DataSource memungkinkan konektor Anda untuk mewarisi perilaku pelipatan kueri default berdasarkan kemampuan yang dilaporkan oleh driver Anda. Perilaku ini memungkinkan mesin M untuk menghasilkan pernyataan SQL berdasarkan filter dan transformasi lain yang ditentukan oleh pengguna dalam pengalaman Power Query, tanpa harus memberikan logika ini dalam konektor itu sendiri.
Ekstensi ODBC dapat secara opsional mengaktifkan mode DirectQuery, yang memungkinkan Power BI menghasilkan kueri secara dinamis pada runtime tanpa melakukan precach model data pengguna.
Catatan
Mengaktifkan dukungan DirectQuery meningkatkan tingkat kesulitan dan kompleksitas konektor Anda. Saat DirectQuery diaktifkan, Power BI mencegah mesin M mengkompensasi operasi yang tidak dapat sepenuhnya didorong ke sumber data yang mendasar.
Artikel ini mengasumsikan keakraban dengan pembuatan konektor kustom dasar.
Lihat sampel SqlODBC untuk sebagian besar contoh kode di bagian berikut. Sampel lain dapat ditemukan di direktori sampel ODBC.
Mesin M menyediakan dua fungsi sumber data terkait ODBC: Odbc.DataSource dan Odbc.Query.
Fungsi Odbc.DataSource menyediakan tabel navigasi default dengan semua database, tabel, dan tampilan dari sistem Anda. Fungsi ini juga mendukung pelipatan kueri, dan memungkinkan berbagai opsi kustomisasi. Sebagian besar ekstensi berbasis ODBC menggunakan fungsi ini sebagai fungsi ekstensibilitas utamanya. Fungsi menerima dua argumen—string koneksi, dan rekaman opsi untuk memberikan penimpaan perilaku.
Fungsi Odbc.Query memungkinkan Anda menjalankan pernyataan SQL melalui driver ODBC. Ini bertindak sebagai passthrough untuk eksekusi kueri. Tidak seperti fungsi Odbc.DataSource, ini tidak menyediakan fungsionalitas pelipatan kueri, dan mengharuskan kueri SQL disediakan oleh konektor (atau pengguna akhir). Saat Anda membangun konektor kustom, fungsi ini biasanya digunakan secara internal untuk menjalankan kueri untuk mengambil metadata yang mungkin tidak diekspos melalui saluran ODBC reguler. Fungsi menerima dua argumen—string koneksi, dan kueri SQL.
Konektor kustom dapat menerima sejumlah argumen fungsi. Tetapi agar tetap konsisten dengan fungsi sumber data bawaan yang dikirimkan dengan Power Query, panduan berikut disarankan:
Memerlukan set parameter minimal yang digunakan untuk membuat koneksi ke server Anda. Semakin sedikit parameter yang perlu disediakan pengguna akhir, semakin mudah konektor Anda gunakan.
Meskipun Anda dapat menentukan parameter dengan jumlah nilai tetap (misalnya, daftar dropdown di UI), parameter dimasukkan sebelum pengguna diautentikasi. Nilai apa pun yang dapat ditemukan secara terprogram setelah pengguna diautentikasi (seperti katalog atau nama database) harus dapat dipilih melalui Navigator. Perilaku default untuk fungsi Odbc.DataSource adalah mengembalikan tabel navigasi hierarkis yang terdiri dari nama Katalog (Database), Skema, dan Tabel. Namun, perilaku ini dapat ditimpa dalam konektor Anda.
Jika Anda merasa pengguna Anda biasanya tahu nilai apa yang akan dimasukkan untuk item yang akan mereka pilih dari Navigator (seperti nama database), buat parameter ini opsional. Parameter yang dapat ditemukan secara terprogram tidak boleh dibuat diperlukan.
Parameter terakhir untuk fungsi Anda harus menjadi catatan opsional yang disebut "opsi". Parameter ini biasanya memungkinkan pengguna tingkat lanjut untuk mengatur properti umum terkait ODBC (seperti
CommandTimeout
), mengatur penimpaan perilaku khusus untuk konektor Anda, dan memungkinkan ekstensibilitas di masa mendatang tanpa memengaruhi kompatibilitas mundur untuk fungsi Anda.Argumen terkait keamanan/kredensial TIDAK BOLEH menjadi bagian dari parameter fungsi sumber data Anda, karena nilai yang dimasukkan dalam dialog sambungkan dipertahankan ke kueri pengguna. Parameter terkait kredensial harus ditentukan sebagai bagian dari metode Autentikasi konektor yang didukung.
Secara default, semua parameter yang diperlukan untuk fungsi sumber data Anda diperhitungkan ke dalam nilai Jalur Sumber Data yang digunakan untuk mengidentifikasi kredensial pengguna.
Meskipun UI untuk fungsi Odbc.DataSource bawaan menyediakan dropdown yang memungkinkan pengguna untuk memilih DSN, fungsionalitas ini tidak tersedia melalui ekstensibilitas. Jika konfigurasi sumber data Anda cukup kompleks untuk memerlukan dialog konfigurasi yang dapat disesuaikan sepenuhnya, kami sarankan Anda mengharuskan pengguna akhir Anda untuk mengonfigurasi DSN sistem terlebih dahulu, dan meminta fungsi Anda mengambil nama DSN sebagai bidang teks.