Memecahkan masalah konektor Azure Synapse Analytics, Azure SQL Database, SQL Server, Azure SQL Managed Instance, dan Amazon RDS untuk SQL Server di Azure Data Factory dan Azure Synapse

BERLAKU UNTUK:Azure Data Factory Azure Synapse Analytics

Tip

Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!

Artikel ini memberikan saran untuk memecahkan masalah umum dengan Azure Synapse Analytics, Azure SQL Database, SQL Server, Azure SQL Managed Instance, dan Amazon RDS untuk konektor SQL Server di Azure Data Factory dan Azure Synapse.

Kode kesalahan: SqlFailedToConnect

  • Pesan: Cannot connect to SQL Database: '%server;', Database: '%database;', User: '%user;'. Check the linked service configuration is correct, and make sure the SQL Database firewall allows the integration runtime to access.

  • Penyebab dan rekomendasi: Penyebab yang berbeda dapat menyebabkan kesalahan ini. Periksa daftar di bawah ini untuk kemungkinan analisis penyebab dan rekomendasi terkait.

    Analisis penyebab Rekomendasi
    Untuk Azure SQL: Jika pesan kesalahan berisi "SqlErrorNumber=47073", itu berarti bahwa akses jaringan publik ditolak dalam pengaturan konektivitas. Pada firewall Azure SQL, atur opsi Tolak akses jaringan publik ke Tidak. Untuk informasi selengkapnya, lihat Pengaturan konektivitas Azure SQL.
    Untuk Azure SQL: Jika pesan kesalahan berisi kode kesalahan SQL, seperti "SqlErrorNumber=[errorcode]", lihat Panduan pemecahan masalah Azure SQL. Untuk rekomendasi, lihatMemecahkan masalah konektivitas dan kesalahan lainnya dengan Azure SQL Database dan Azure SQL Managed Instance.
    Periksa untuk melihat apakah port 1433 di daftar yang diizinkan firewall. Untuk informasi selengkapnya, lihat Port yang digunakan oleh SQL Server.
    Jika pesan kesalahan berisi untai (karakter) "SqlException", SQL Database kesalahan menunjukkan bahwa beberapa operasi tertentu gagal. Untuk informasi selengkapnya, cari berdasarkan kode kesalahan SQL di Kesalahan mesin database. Jika memerlukan bantuan lebih lanjut, hubungi dukungan Azure SQL.
    Jika ini adalah masalah sementara (misalnya, koneksi jaringan yang tidak stabil), tambahkan coba lagi dalam kebijakan aktivitas untuk dikurangi. Untuk informasi selengkapnya, lihat Alur dan aktivitas.
    Jika pesan kesalahan berisi "Klien dengan alamat IP '...' tidak diizinkan untuk mengakses server", dan Anda mencoba menyambungkan ke Azure SQL Database, masalah ini biasanya disebabkan oleh masalah firewall Azure SQL Database. Dalam konfigurasi firewall Azure SQL Server, aktifkan opsiIzinkan layanan dan sumber daya Azure untuk mengakses server ini. Untuk informasi selengkapnya, lihat Azure SQL Database dan aturan firewall Azure Synapse IP.
    Jika pesan kesalahan berisi Login failed for user '<token-identified principal>', kesalahan ini biasanya disebabkan oleh tidak memberikan izin yang cukup kepada perwakilan layanan atau identitas terkelola yang ditetapkan sistem atau identitas terkelola yang ditetapkan pengguna (tergantung pada jenis autentikasi mana yang Anda pilih) di database Anda. Berikan izin yang cukup kepada perwakilan layanan atau identitas terkelola yang ditetapkan sistem atau identitas terkelola yang ditetapkan pengguna di database Anda.

    Untuk Azure SQL Database:
        - Jika Anda menggunakan autentikasi perwakilan layanan, ikuti Autentikasi perwakilan layanan.
        - Jika Anda menggunakan autentikasi identitas terkelola yang ditetapkan sistem, ikuti Autentikasi identitas terkelola yang ditetapkan sistem.
        - Jika Anda menggunakan autentikasi identitas terkelola yang ditetapkan pengguna, ikuti Autentikasi identitas terkelola yang ditetapkan pengguna.
       
    Untuk Azure Synapse Analytics:
        - Jika Anda menggunakan autentikasi perwakilan layanan, ikuti Autentikasi perwakilan layanan.
        - Jika Anda menggunakan autentikasi identitas terkelola yang ditetapkan sistem, ikuti Identitas terkelola yang ditetapkan sistem untuk autentikasi sumber daya Azure.
        - Jika Anda menggunakan autentikasi identitas terkelola yang ditetapkan pengguna, ikuti Autentikasi identitas terkelola yang ditetapkan pengguna.
       
    Untuk Azure SQL Managed Instance:
        - Jika Anda menggunakan autentikasi perwakilan layanan, ikuti Autentikasi perwakilan layanan.
       - Jika Anda menggunakan autentikasi identitas terkelola yang ditetapkan sistem, ikuti Autentikasi identitas terkelola yang ditetapkan sistem.
       - Jika Anda menggunakan autentikasi identitas terkelola yang ditetapkan pengguna, ikuti Autentikasi identitas terkelola yang ditetapkan pengguna.
    Jika Anda memenuhi pesan kesalahan yang berisi The server was not found or was not accessible saat menggunakan Azure SQL Managed Instance, kesalahan ini biasanya disebabkan oleh tidak mengaktifkan titik akhir publik Azure SQL Managed Instance. Lihat Mengonfigurasi titik akhir publik di Azure SQL Managed Instance untuk mengaktifkan titik akhir publik Azure SQL Managed Instance.

Kode kesalahan: SqlOperationFailed

  • Pesan: A database operation failed. Please search error to get more details.

  • Penyebab dan rekomendasi: Penyebab yang berbeda dapat menyebabkan kesalahan ini. Periksa daftar di bawah ini untuk kemungkinan analisis penyebab dan rekomendasi terkait.

    Analisis penyebab Rekomendasi
    Jika pesan kesalahan berisi untai (karakter) "SqlException", SQL Database akan menampilkan kesalahan yang menunjukkan bahwa beberapa operasi tertentu gagal. Jika kesalahan SQL tidak jelas, coba ubah database ke tingkat kompatibilitas terbaru '150'. Langkah ini dapat memunculkan kesalahan SQL versi terbaru. Untuk informasi selengkapnya, lihat dokumentasi.
    Untuk informasi selengkapnya tentang pemecahan masalah SQL, cari berdasarkan kode kesalahan SQL dalam Kesalahan mesin database. Jika memerlukan bantuan lebih lanjut, hubungi dukungan Azure SQL.
    Jika pesan kesalahan berisi untai (karakter) "PdwManagedToNativeInteropException", biasanya ini disebabkan oleh ketidakcocokan antara ukuran kolom sumber dan sink. Periksa ukuran kolom sumber dan sink. Jika memerlukan bantuan lebih lanjut, hubungi dukungan Azure SQL.
    Jika pesan kesalahan berisi untai (karakter) "InvalidOperationException", biasanya kesalahan ini disebabkan oleh data input yang tidak valid. Untuk mengidentifikasi baris mana yang mengalami masalah, aktifkan fitur toleransi kesalahan pada aktivitas salin, yang dapat mengalihkan baris bermasalah ke penyimpanan untuk penyelidikan lebih lanjut. Untuk informasi selengkapnya, lihatToleransi kegagalan aktivitas salin.
    Jika pesan kesalahan berisi "Batas Waktu Eksekusi Kedaluwarsa", kesalahan ini biasanya disebabkan oleh batas waktu kueri. Konfigurasikan Batas waktu kueri di sumber dan Tulis batas waktu batch di sink untuk meningkatkan batas waktu.
    Jika pesan kesalahan berisi Cannot find the object "dbo.Contoso" because it does not exist or you do not have permissions. saat Anda menyalin data dari hibrid ke dalam tabel SQL Server lokal, itu disebabkan oleh akun SQL saat ini tidak memiliki izin yang memadai untuk menjalankan permintaan yang dikeluarkan oleh .NET SqlBulkCopy.WriteToServer atau tabel atau database Anda tidak ada. Beralih ke akun SQL yang lebih istimewa atau periksa apakah tabel atau database Anda ada.

Kode kesalahan: SqlUnauthorizedAccess

  • Pesan: Cannot connect to '%connectorName;'. Detail Message: '%message;'

  • Penyebab: Informasi masuk salah atau akun masuk tidak dapat mengakses database SQL.

  • Rekomendasi: Periksa untuk memastikan bahwa akun masuk memiliki izin yang memadai untuk mengakses database SQL.

Kode kesalahan: SqlOpenConnectionTimeout

  • Pesan: Open connection to database timeout after '%timeoutValue;' seconds.

  • Penyebab: Masalahnya bisa menjadi kegagalan sementara database SQL.

  • Rekomendasi: Coba lagi operasi untuk memperbarui string koneksi layanan tertaut dengan nilai waktu tunggu koneksi yang lebih besar.

Kode kesalahan: SqlAutoCreateTableTypeMapFailed

  • Pesan: Type '%dataType;' in source side cannot be mapped to a type that supported by sink side(column name:'%columnName;') in autocreate table.

  • Penyebab: Tabel pembuatan otomatis tidak dapat memenuhi persyaratan sumber.

  • Rekomendasi: Perbarui jenis kolom di pemetaan, atau buat tabel sink secara manual di server target.

Kode kesalahan: SqlDataTypeNotSupported

  • Pesan: A database operation failed. Check the SQL errors.

  • Penyebab: Jika masalah terjadi di sumber SQL dan kesalahan terkait dengan luapan SqlDateTime, nilai data melebihi rentang jenis logika (1/1/1753 12:00:00 AM - 31/12/9999 11:59:59 PM).

  • Rekomendasi: Transmisikan jenis ke string dalam kueri SQL sumber atau, dalam pemetaan kolom aktivitas salin, ubah jenis kolom menjadi String.

  • Penyebab: Jika masalah terjadi di sink SQL dan kesalahan terkait dengan luapan SqlDateTime, nilai data melebihi rentang jenis logika (1/1/1753 12:00:00 AM - 31/12/9999 11:59:59 PM).

  • Rekomendasi: Perbarui jenis kolom yang sesuai ke jenis datetime2 di tabel sink.

Kode kesalahan: SqlInvalidDbStoredProcedure

  • Pesan: The specified Stored Procedure is not valid. It could be caused by that the stored procedure doesn't return any data. Invalid Stored Procedure script: '%scriptName;'.

  • Penyebab dan rekomendasi: Penyebab yang berbeda dapat menyebabkan kesalahan ini. Periksa daftar di bawah ini untuk kemungkinan analisis penyebab dan rekomendasi terkait.

    Analisis penyebab Rekomendasi
    Prosedur tersimpan yang ditentukan tidak valid. Validasi prosedur yang disimpan dengan menggunakan SQL Tools. Pastikan bahwa prosedur yang disimpan dapat mengembalikan data.
    Aktivitas Lookup memerlukan prosedur tersimpan untuk mengembalikan beberapa nilai, tetapi kode prosedur tersimpan tidak mengembalikan nilai apa pun. Gunakan Aktivitas Prosedur Tersimpan jika prosedur tersimpan diharapkan tidak mengembalikan data.

Kode kesalahan: SqlInvalidDbQueryString

  • Pesan: The specified SQL Query is not valid. It could be caused by that the query doesn't return any data. Invalid query: '%query;'

  • Penyebab: Kueri SQL yang ditentukan tidak valid. Penyebabnya mungkin kueri tidak mengembalikan data apa pun.

  • Rekomendasi: Validasi kueri SQL dengan menggunakan Alat SQL. Pastikan kueri bisa mengembalikan data.

Kode kesalahan: SqlInvalidColumnName

  • Pesan: Column '%column;' does not exist in the table '%tableName;', ServerName: '%serverName;', DatabaseName: '%dbName;'.

  • Penyebab: Kolom tidak dapat ditemukan karena konfigurasi mungkin salah.

  • Rekomendasi: Verifikasi kolom dalam kueri, struktur dalam kumpulan data, dan pemetaan dalam aktivitas.

Kode kesalahan: SqlBatchWriteTimeout

  • Pesan: Timeouts in SQL write operation.

  • Penyebab: Masalah dapat disebabkan oleh kegagalan sementara database SQL.

  • Rekomendasi: Coba lagi operasi. Jika masalah berlanjut, hubungi dukungan Azure SQL.

Kode kesalahan: SqlBatchWriteTransactionFailed

  • Pesan: SQL transaction commits failed.

  • Penyebab: Jika detail pengecualian terus-menerus memberitahukan waktu transaksi habis, artinya latensi jaringan antara runtime integrasi dan database lebih tinggi sebesar 30 detik dari ambang batas default.

  • Rekomendasi: Perbarui string koneksi layanan tertaut SQL dengan nilai batas waktu koneksi yang sama dengan atau lebih besar dari 120 dan jalankan kembali aktivitas.

  • Penyebab: Jika detail pengecualian secara sesekali menunjukkan bahwa koneksi SQL rusak, itu mungkin hanya merupakan kegagalan jaringan sementara atau masalah sampingan database SQL.

  • Rekomendasi: Coba lagi aktivitas dan tinjau metrik sisi database SQL.

Kode kesalahan: SqlBulkCopyInvalidColumnLength

  • Pesan: SQL Bulk Copy failed due to receive an invalid column length from the bcp client.

  • Penyebab: Salin Massal SQL gagal karena menerima panjang kolom yang tidak valid dari klien utilitas program salin massal (bcp).

  • Rekomendasi: Untuk mengidentifikasi baris mana yang mengalami masalah, aktifkan fitur toleransi kesalahan pada aktivitas penyalinan. Hal ini dapat mengalihkan baris bermasalah ke penyimpanan untuk penyelidikan lebih lanjut. Untuk informasi selengkapnya, lihatToleransi kegagalan aktivitas salin.

Kode kesalahan: SqlConnectionIsClosed

  • Pesan: The connection is closed by SQL Database.

  • Penyebab: Koneksi SQL ditutup oleh database SQL ketika eksekusi bersamaan yang tinggi dan server menghentikan koneksi.

  • Rekomendasi: Coba lagi koneksi. Jika masalah berlanjut, hubungi dukungan Azure SQL.

Kode kesalahan: SqlServerInvalidLinkedServiceCredentialMissing

  • Pesan: The SQL Server linked service is invalid with its credential being missing.

  • Penyebab: Layanan tertaut tidak dikonfigurasi dengan benar.

  • Recommendation: Validasi dan perbaiki layanan tertaut server SQL.

Kode kesalahan: SqlParallelFailedToDetectPartitionColumn

  • Pesan: Failed to detect the partition column with command '%command;', %message;.

  • Penyebab: Tidak ada kunci utama atau kunci unik dalam tabel.

  • Recommendation: Periksa tabel untuk memastikan bahwa kunci utama atau indeks unik dibuat.

Kode kesalahan: SqlParallelFailedToDetectPhysicalPartitions

  • Pesan: Failed to detect the physical partitions with command '%command;', %message;.

  • Penyebab: Tidak ada partisi fisik yang dibuat untuk tabel. Periksa database Anda.

  • Recommendation: Referensi Buat Tabel dan Indeks yang Dipartisi untuk mengatasi masalah ini.

Kode kesalahan: SqlParallelFailedToGetPartitionRangeSynapse

  • Pesan: Failed to get the partitions for azure synapse with command '%command;', %message;.

  • Penyebab: Tidak ada partisi fisik yang dibuat untuk tabel. Periksa database Anda.

  • Recommendation: Referensi tabel Partisi dalam kumpulan SQL khusus untuk mengatasi masalah ini.

Pesan kesalahan: Konversi gagal saat mengonversi dari string karakter menjadi pengidentifikasi unik

  • Gejala: Saat menyalin data dari sumber data tabular (seperti SQL Server) ke Azure Synapse Analytics menggunakan salinan bertahap dan PolyBase, Anda menerima kesalahan berikut:

    ErrorCode=FailedDbOperation,Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException, Message=Error happened when loading data into Azure Synapse Analytics., Source=Microsoft.DataTransfer.ClientLibrary,Type=System.Data.SqlClient.SqlException, Message=Conversion failed when converting from a character string to uniqueidentifier...

  • Penyebab: Azure Synapse Analytics PolyBase tidak dapat mengonversi untai (karakter) kosong menjadi GUID.

  • Resolusi: Di sink aktivitas salin, di bawah pengaturan PolyBase, atur opsi default jenis penggunaan ke false.

Pesan kesalahan: Jenis data yang diharapkan: DECIMAL(x,x), Nilai yang menyinggung

  • Gejala: Saat menyalin data dari sumber data tabular (seperti SQL Server) ke Azure Synapse Analytics menggunakan salinan bertahap dan PolyBase, Anda menerima kesalahan berikut:

    ErrorCode=FailedDbOperation,Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException, Message=Error happened when loading data into Azure Synapse Analytics., Source=Microsoft.DataTransfer.ClientLibrary,Type=System.Data.SqlClient.SqlException, Message=Query aborted-- the maximum reject threshold (0 rows) was reached while reading from an external source: 1 rows rejected out of total 415 rows processed. (/file_name.txt) Column ordinal: 18, Expected data type: DECIMAL(x,x), Offending value:..

  • Penyebab: Azure Synapse Analytics PolyBase tidak dapat menyisipkan untai (karakter) kosong (nilai kosong) ke dalam kolom desimal.

  • Resolusi: Di sink aktivitas salin, di bawah pengaturan PolyBase, atur opsi default jenis penggunaan ke false.

Pesan kesalahan: Pesan pengecualian Java: HdfsBridge::CreateRecordReader

  • Gejala: Salin data ke Azure Synapse Analytics dengan menggunakan PolyBase dan menerima kesalahan berikut:

    Message=110802;An internal DMS error occurred that caused this operation to fail. Details: Exception: Microsoft.SqlServer.DataWarehouse.DataMovement.Common.ExternalAccess.HdfsAccessException, Message: Java exception raised on call to HdfsBridge_CreateRecordReader. Java exception message:HdfsBridge::CreateRecordReader - Unexpected error encountered creating the record reader.: Error [HdfsBridge::CreateRecordReader - Unexpected error encountered creating the record reader.] occurred while accessing external file.....

  • Penyebab: Penyebabnya mungkin skema (lebar kolom total) terlalu besar (lebih besar dari 1 MB). Periksa skema tabel target Azure Synapse Analytics dengan menambahkan ukuran semua kolom:

    • Int = 4 byte
    • Bigint = 8 byte
    • Varchar(n), char(n), biner(n), varbinary(n) = n byte
    • Nvarchar(n), nchar(n) = n*2 byte
    • Tanggal = 6 byte
    • Tanggalwaktu/(2), tanggalwaktukecil = 16 byte
    • Offsettanggalwaktu = 20 byte
    • Desimal = 19 byte
    • Float = 8 byte
    • Uang = 8 byte
    • Uangkecil = 4 byte
    • Nyata = 4 byte
    • Smallint = 2 byte
    • Waktu = 12 byte
    • Tinyint = 1 byte
  • Resolusi:

    • Harap kurangi lebar kolom menjadi kurang dari 1 MB.
    • Atau gunakan pendekatan sisipan massal dengan menonaktifkan Polybase.

Pesan kesalahan: Kondisi yang ditentukan menggunakan header bersyarat HTTP tidak terpenuhi

  • Gejala: Gunakan kueri SQL untuk menarik data dari Azure Synapse Analytics dan menerima kesalahan berikut:

    ...StorageException: The condition specified using HTTP conditional header(s) is not met...

  • Penyebab: Azure Synapse Analytics mengalami masalah saat membuat kueri tabel eksternal di Azure Storage.

  • Resolusi: Jalankan kueri yang sama di SQL Server Management Studio (SSMS) dan periksa untuk melihat apakah Anda mendapatkan hasil yang sama. Jika ya, buka tiket dukungan ke Azure Synapse Analytics dan berikan nama server dan{i>

Tingkat kinerja rendah dan menyebabkan kegagalan salin

  • Gejala: Menyalin data ke Azure SQL Database dan menerima kesalahan berikut: Database operation failed. Error message from database execution : ExecuteNonQuery requires an open and available Connection. The connection's current state is closed.

  • Penyebab: Azure SQL Database s1 telah mencapai batas input/output (I/O).

  • Resolusi: Tingkatkan tingkat kinerja Azure SQL Database untuk memperbaiki masalah tersebut.

Pesan kesalahan: Data string atau biner terpotong

  • Gejala: Kesalahan terjadi saat Anda menyalin data ke tabel Azure SQL Server lokal.

  • Penyebab: Definisi skema tabel SQL memiliki satu atau beberapa kolom dengan panjang kurang dari yang diharapkan.

  • Resolusi:Coba langkah-langkah berikut untuk mengatasi masalah:

    1. Untuk memecahkan masalah baris mana yang memiliki masalah, terapkan sink SQL toleransi kegagalan, khususnya redirectIncompatibleRowSettings.

      Catatan

      Toleransi kegagalan mungkin memerlukan waktu eksekusi tambahan, yang dapat menyebabkan biaya yang lebih tinggi.

    2. Periksa kembali data yang dialihkan terhadap panjang kolom skema tabel SQL untuk melihat kolom mana yang perlu diperbarui.

    3. Perbarui skema tabel yang sesuai.

Kode kesalahan: FailedDbOperation

  • Pesan: User does not have permission to perform this action.

  • Recommendation: Pastikan pengguna yang dikonfigurasi dalam konektor Azure Synapse Analytics harus memiliki izin 'KONTROL' pada database target saat menggunakan PolyBase untuk memuat data. Untuk informasi lebih rinci, lihat dokumen ini.

Kode galat: Msg 105208

  • Gejala: Kode galat: Error code: Msg 105208, Level 16, State 1, Line 1 COPY statement failed with the following error when validating value of option 'FROM': '105200;COPY statement failed because the value for option 'FROM' is invalid.'
  • Penyebab: Saat ini, menyerap data menggunakan perintah COPY ke akun Azure Storage yang menggunakan fitur pemartisian DNS baru mengakibatkan kesalahan. Fitur partisi DNS memungkinkan pelanggan membuat hingga 5000 akun penyimpanan per langganan.
  • Resolusi: Provisikan akun penyimpanan di langganan yang tidak menggunakan fitur partisi DNS Azure Storage baru (sedang dalam Pratinjau Umum).

Kode kesalahan: SqlDeniedPublicAccess

  • Pesan: Cannot connect to SQL Database: '%server;', Database: '%database;', Reason: Connection was denied since Deny Public Network Access is set to Yes. To connect to this server, 1. If you persist public network access disabled, please use Managed Vritual Network IR and create private endpoint. https://docs.microsoft.com/en-us/azure/data-factory/managed-virtual-network-private-endpoint; 2. Otherwise you can enable public network access, set "Public network access" option to "Selected networks" on Azure SQL Networking setting.

  • Penyebab: Azure SQL Database diatur untuk menolak akses jaringan publik. Ini mengharuskan untuk menggunakan jaringan virtual terkelola dan membuat titik akhir privat untuk diakses.

  • Rekomendasi:

    1. Jika Anda bersikeras menonaktifkan akses jaringan publik, gunakan runtime integrasi jaringan virtual terkelola dan buat titik akhir privat. Untuk informasi selengkapnya, lihat Jaringan virtual terkelola Azure Data Factory.

    2. Jika tidak, aktifkan akses jaringan publik dengan mengatur opsi Akses jaringan publik ke Jaringan yang dipilih di halaman pengaturan Jaringan Azure SQL Database.

Untuk bantuan pemecahan masalah lainnya, coba sumber daya ini: