Bagikan melalui


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 (menggunakan Table.Buffer) sebelum menerapkan operasi hilir. 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 diperlakukan sebagai kesalahan konversi jenis.

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 dalam 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 jalan adalah (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 dengan data yang lebih besar, pelanggan harus berkonsultasi dengan pemilik sumber data untuk melihat apakah halaman dukungan API mereka, sehingga mereka dapat membagi permintaan mereka menjadi potongan yang lebih kecil. Gagal itu, cara alternatif untuk mengekstrak data dari API (praktik terbaik sumber data berikut) harus diikuti.

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 server yang Anda sambungkan harus mendukung untuk menyambungkan dari 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 memutakhirkan versi Windows atau memperbarui registri TLS Windows untuk memastikan bahwa 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 dilucuti dalam kasus tertentu, tetapi Anda tidak ingin menurunkan keamanan sepenuhnya, untuk terus bekerja.

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

Kesalahan: Evaluasi dibatalkan

Power Query mengembalikan pesan "Evaluasi dibatalkan" saat analisis latar belakang dinonaktifkan dan pengguna beralih antar 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 lokal, Anda harus menggunakan gateway data lokal.

Batasan: Persyaratan bergabung dengan domain untuk komputer gateway saat menggunakan autentikasi Windows

Menggunakan autentikasi Windows dengan gateway lokal mengharuskan komputer gateway bergabung dengan domain. Ini berlaku untuk koneksi apa pun yang disiapkan dengan "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 lintas penyewa 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 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.

Expression.Error: Evaluasi mengakibatkan luapan tumpukan dan tidak dapat dilanjutkan

Kesalahan luapan tumpukan dapat disebabkan oleh bug dalam kode M Anda. Misalnya, fungsi berikut menghasilkan luapan tumpukan karena berulang kali memanggil kembali ke dirinya sendiri tanpa kondisi akhir apa pun. 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 luapan tumpukan 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. Mengurutkan, misalnya, sering kali tidak perlu.

Aliran data

Membatalkan refresh 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.