Masalah Umum

Power Query

Mempertahankan pengurutan

Anda mungkin berasumsi bahwa jika Anda mengurutkan data Anda, setiap operasi hilir mempertahankan urutan pengurutan.

Misalnya, jika Anda mengurutkan tabel penjualan sehingga penjualan terbesar setiap toko ditampilkan terlebih dahulu, Anda mungkin mengharapkan bahwa melakukan operasi "Hapus duplikat" hanya mengembalikan penjualan teratas untuk setiap toko. Dan operasi ini mungkin, pada kenyataannya, tampaknya berhasil. Namun, perilaku ini tidak dijamin.

Karena cara Power Query mengoptimalkan operasi tertentu, termasuk melewatkannya atau membongkarnya ke sumber data (yang dapat memiliki perilaku pengurutan unik mereka sendiri), urutan pengurutan tidak dijamin dipertahankan melalui agregasi (seperti Table.Group), penggabungan (seperti Table.NestedJoin), atau penghapusan duplikat (seperti Table.Distinct).

Ada sejumlah cara untuk mengatasi hal ini. Berikut adalah beberapa saran:

  • Lakukan pengurutan setelah menerapkan operasi hilir. Misalnya, saat mengelompokkan baris, urutkan tabel berlapis di setiap grup sebelum menerapkan langkah-langkah lebih lanjut. Berikut adalah beberapa contoh kode M yang menunjukkan pendekatan ini: Table.Group(Sales_SalesPerson, {"TerritoryID"}, {{"SortedRows", each Table.Sort(_, {"SalesYTD", Order.Descending})}})
  • Buffer data tersebut (menggunakan Table.Buffer) sebelum menerapkan operasi lanjutan. Dalam beberapa kasus, operasi ini menyebabkan operasi hilir mempertahankan urutan pengurutan yang di-buffer.
  • Gunakan peringkat. Misalnya, alih-alih menggunakan Table.Distinct, Anda dapat mengurutkan berdasarkan kolom yang berisi nilai duplikat, peringkat berdasarkan kolom tie-breaker (seperti modified_date), lalu memfilter untuk mempertahankan hanya baris peringkat 1.

Inferensi jenis data

Terkadang Power Query mungkin salah mendeteksi tipe data kolom. Hal ini disebabkan oleh fakta bahwa Power Query menyimpulkan tipe data hanya menggunakan 200 baris data pertama. Jika data dalam 200 baris pertama entah bagaimana berbeda dari data setelah baris 200, Power Query bisa memilih jenis yang salah. (Ketahuilah bahwa jenis yang salah tidak akan selalu menghasilkan kesalahan. Terkadang nilai yang dihasilkan hanya salah, membuat masalah lebih sulit dideteksi.)

Misalnya, bayangkan kolom yang berisi bilangan bulat dalam 200 baris pertama (seperti semua nol), tetapi berisi angka desimal setelah baris 200. Dalam hal ini, Power Query menyimpulkan tipe data kolom menjadi Bilangan Bujur Utuh (Int64.Type). Inferensi ini menghasilkan bagian desimal dari angka non-bilangan bulat yang dipotong.

Atau bayangkan kolom yang berisi nilai tanggal tekstual dalam 200 baris pertama, dan jenis nilai teks lainnya setelah baris 200. Dalam hal ini, Power Query menyimpulkan tipe data kolom menjadi Tanggal. Inferensi ini menghasilkan nilai teks non-tanggal yang dianggap sebagai kesalahan konversi tipe.

Karena deteksi jenis berfungsi pada 200 baris pertama, tetapi Pembuatan Profil Data dapat beroperasi di seluruh himpunan data, Anda dapat mempertimbangkan untuk menggunakan fungsionalitas Pembuatan Profil Data untuk mendapatkan indikasi awal di Editor Kueri tentang Kesalahan (dari deteksi jenis atau sejumlah alasan lain) di luar baris N teratas.

Koneksi ditutup secara paksa oleh host jarak jauh

Saat menyambungkan ke berbagai API, Anda mungkin mendapatkan peringatan berikut:

Data source error: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host

Jika Anda mengalami kesalahan ini, kemungkinan besar masalah jaringan. Umumnya, orang pertama yang harus diperiksa adalah pemilik sumber data yang coba Anda sambungkan. Jika mereka tidak berpikir mereka yang menutup koneksi, maka ada kemungkinan sesuatu di sepanjang jalur menyebabkan hal tersebut (misalnya, server proksi, router/gateway perantara, dan sebagainya).

Apakah ini hanya bereproduksi dengan data apa pun atau hanya ukuran data yang lebih besar, kemungkinan ada batas waktu jaringan di suatu tempat di rute. Jika hanya berurusan dengan data yang lebih besar, pelanggan harus berkonsultasi dengan pemilik sumber data untuk melihat apakah API mereka mendukung paging, sehingga mereka dapat membagi permintaan menjadi bagian yang lebih kecil. Jika itu tidak berhasil, cara alternatif untuk mengekstrak data dari API harus diikuti sesuai dengan praktik terbaik sumber data.

Suite penyandian TLS RSA tidak digunakan lagi

Efektif 30 Oktober 2020, rangkaian penyandian berikut tidak digunakan lagi dari server kami.

  • "TLS_RSA_WITH_AES_256_GCM_SHA384"
  • "TLS_RSA_WITH_AES_128_GCM_SHA256"
  • "TLS_RSA_WITH_AES_256_CBC_SHA256"
  • "TLS_RSA_WITH_AES_128_CBC_SHA256"

Daftar berikut adalah cipher suite yang didukung:

  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
  • "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
  • "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  • "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
  • "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"

Suite penyandian digunakan untuk mengenkripsi pesan untuk mengamankan sambungan jaringan antara klien/server dan server lainnya. Kami menghapus suite daftar sandi di atas untuk mematuhi protokol keamanan kami saat ini. Mulai 1 Maret 2021, pelanggan hanya dapat menggunakan Suite penyandian standar kami.

Ini adalah cipher suite yang harus didukung oleh server agar dapat terhubung menggunakan Power Query Online atau Power BI.

Di Power Query Desktop (Power BI, Excel), kami tidak mengontrol cipher suite Anda. Jika Anda mencoba menyambungkan ke Power Platform (misalnya Power Platform Dataflows) atau Layanan Power BI, Anda memerlukan salah satu suite sandi yang diaktifkan di OS Anda. Anda dapat meningkatkan versi Windows atau memperbarui registri TLS Windows untuk memastikan titik akhir server Anda mendukung salah satu cipher ini.

Untuk memverifikasi bahwa server Anda mematuhi protokol keamanan, Anda dapat melakukan pengujian menggunakan cipher TLS dan alat pemindai. Salah satu contohnya mungkin SSLLABS.

Pelanggan harus meningkatkan server mereka sebelum 1 Maret, 2021. Untuk informasi lebih lanjut tentang konfigurasi pesanan Suite penyandian TLS, lihat mengelola Transport Layer Security (TLS).

Pencabutan sertifikat

Versi Power BI Desktop yang akan datang menyebabkan kegagalan koneksi SSL dari Desktop ketika sertifikat apa pun dalam rantai SSL kehilangan status pencabutan sertifikat. Ini adalah perubahan dari status saat ini, di mana pencabutan hanya menyebabkan kegagalan koneksi dalam kasus di mana sertifikat dicabut secara eksplisit. Masalah sertifikat lainnya mungkin mencakup tanda tangan yang tidak valid, dan kedaluwarsa sertifikat.

Karena ada konfigurasi di mana status pencabutan mungkin dilucuti, seperti dengan server proksi perusahaan, kami akan menyediakan opsi lain untuk mengabaikan sertifikat yang tidak memiliki informasi pencabutan. Opsi ini memungkinkan situasi di mana informasi pencabutan dihapus dalam kasus tertentu, namun Anda tidak ingin menurunkan keamanan sepenuhnya agar proses tetap berlanjut.

Tidak disarankan, tetapi pengguna tetap dapat menonaktifkan pemeriksaan pencabutan sepenuhnya.

Kesalahan: Evaluasi dibatalkan

Power Query mengembalikan pesan "Evaluasi dibatalkan" saat analisis latar belakang dinonaktifkan dan pengguna beralih di antara kueri atau menutup Editor Kueri saat kueri sedang dalam proses refresh.

Kesalahan: Kunci tidak cocok dengan baris apa pun dalam tabel

Ada banyak alasan mengapa Power Query mungkin mengembalikan kesalahan bahwa kunci tidak cocok dengan baris apa pun dalam tabel. Ketika kesalahan ini terjadi, Mesin Mashup tidak dapat menemukan nama tabel yang dicarinya. Alasan mengapa kesalahan ini mungkin terjadi meliputi:

  • Nama tabel telah diubah, misalnya di sumber data itu sendiri.
  • Akun yang digunakan untuk mengakses tabel tidak memiliki hak istimewa yang memadai untuk membaca tabel.
  • Mungkin ada beberapa kredensial untuk satu sumber data, yang tidak didukung di Layanan Power BI saat menggunakan Koneksi Cloud Pribadi. Kesalahan ini mungkin terjadi, misalnya, ketika sumber data adalah sumber data cloud dan beberapa akun digunakan untuk mengakses sumber data secara bersamaan dengan kredensial yang berbeda. Jika sumber data di lokasi, Anda harus menggunakan gateway data lokal.

Batasan: Syarat bergabung dengan domain untuk mesin gateway saat menggunakan pengautentikasian Windows

Menggunakan autentikasi Windows dengan gateway lokal mengharuskan komputer gateway bergabung dengan domain. Ini berlaku untuk koneksi yang dikonfigurasi menggunakan "Autentikasi Windows melalui gateway*. Akun Windows yang digunakan untuk mengakses sumber data mungkin memerlukan akses baca ke komponen bersama di direktori Windows dan penginstalan gateway.

Batasan: Refresh OAuth2 antarpengguna tidak didukung di layanan Power BI

Jika Anda ingin menyambungkan ke sumber data dari layanan Power BI menggunakan OAuth2, sumber data harus berada di penyewa yang sama dengan layanan Power BI. Saat ini, skenario koneksi multi-penyewa (multi-tenancy) tidak didukung dengan OAuth2.

Batasan: Titik akhir autentikasi AD FS kustom tidak didukung di layanan Power BI

Kemampuan untuk menggunakan titik akhir autentikasi Active Directory Federation Services (AD FS) kustom tidak didukung di layanan Power BI. Pengguna mungkin mengalami kesalahan berikut: Layanan token yang dilaporkan oleh sumber daya tidak tepercaya.

Batasan: Akun tamu tidak didukung

Menggunakan akun tamu penyewa untuk menyambungkan ke data menggunakan konektor Power Query saat ini tidak didukung.

Kesalahan Ekspresi: Evaluasi menyebabkan kelebihan tumpukan dan tidak dapat melanjutkan

Kesalahan kelebihan tumpukan dapat disebabkan oleh bug dalam kode M Anda. Misalnya, fungsi berikut menghasilkan stack overflow karena berulang kali memanggil dirinya sendiri tanpa kondisi akhir. Fungsi yang menyebut dirinya seperti ini dikenal sebagai fungsi "rekursif".

let f = (x) => @f(x + 1) in f(0)

Berikut adalah beberapa cara umum untuk mengatasi stack overflow dalam kode M Anda.

  • Pastikan bahwa fungsi rekursif Anda benar-benar berakhir ketika kondisi akhir yang diharapkan tercapai.
  • Ganti rekursi dengan iterasi (misalnya, dengan menggunakan fungsi seperti List.Transform, List.Generate, atau List.Accumulate).

Expression.Error: Evaluasi kehabisan memori dan tidak dapat dilanjutkan

Kesalahan "Kehabisan memori" (atau OOM) dapat disebabkan oleh melakukan terlalu banyak operasi intensif memori terhadap tabel yang sangat besar. Misalnya, kode M berikut menghasilkan OOM karena mencoba memuat miliar baris ke dalam memori sekaligus.

Table.Buffer(Table.FromList({1..1000000000}, Splitter.SplitByNothing()))

Untuk mengatasi kesalahan memori, optimalkan operasi intensif memori seperti pengurutan, gabungan, pengelompokan, dan perbedaan dengan memastikannya dilipat ke sumber, atau dengan menghapusnya sama sekali jika memungkinkan. Pengurutan, misalnya, sering kali tidak diperlukan.

Power Query Online tidak dapat tersambung melalui titik akhir publik saat titik akhir privat dikonfigurasi ke Penyimpanan

Saat titik akhir privat ke Akun Penyimpanan dikonfigurasi, Power Query Online akan selalu melakukan resolusi alamat tautan privat dan tidak dapat terhubung melalui internet publik—meskipun akses publik dikonfigurasi sebagai "Diizinkan" dalam konfigurasi titik akhir privat.

Perilaku ini terjadi karena titik akhir privat lebih diutamakan daripada konektivitas publik. Akibatnya, setiap upaya untuk terhubung tanpa gateway akan gagal.

Dialog kesalahan saat melakukan operasi karakter khusus tertentu

Saat menggunakan keyboard IME Korea di Power Query, dialog kesalahan mungkin muncul saat Anda memasukkan karakter khusus tertentu di editor tingkat lanjut, dialog Kolom Kustom, atau bilah rumus.

Masalah ini berdampak pada editor Power Query di Power BI Desktop dan Excel. Ini tidak berdampak pada Power Query Online (Aliran Data).

Untuk mengatasi masalah ini, nonaktifkan M Intellisense di opsi editor Power Query.

Dataflows

Membatalkan penyegaran aliran data

Terkadang Anda memulai refresh aliran data, tetapi setelah memulainya, Anda menyadari bahwa Anda ingin mengubah satu hal lagi sebelum me-refresh data Anda. Dalam hal ini, Anda harus menunggu hingga refresh selesai. Menghentikan refresh di tengah jalan karena proses sudah bekerja untuk mendapatkan data dan memperbarui tabel di ruang kerja atau lingkungan Anda saat ini tidak didukung.

Kami berencana untuk menambahkan dukungan untuk membatalkan refresh aliran data di masa mendatang.