Bagikan melalui


Catatan rilis komputasi tanpa server

Artikel ini menjelaskan fitur dan perilaku yang saat ini tersedia dan akan datang pada komputasi tanpa server untuk buku catatan dan pekerjaan.

Untuk informasi selengkapnya tentang komputasi tanpa server, lihat Menyambungkan ke komputasi tanpa server.

Azure Databricks secara berkala merilis pembaruan untuk komputasi tanpa server, secara otomatis meningkatkan runtime komputasi tanpa server untuk mendukung peningkatan dan peningkatan ke platform. Semua pengguna mendapatkan pembaruan yang sama, diluncurkan dalam waktu singkat.

versi lingkungan Tanpa Server

Komputasi tanpa server Databricks untuk notebook dan pekerjaan menampilkan arsitektur berbasis Spark Connect, memungkinkan peningkatan mesin independen tanpa memengaruhi aplikasi. Untuk memastikan kompatibilitas aplikasi, beban kerja tanpa server menggunakan API versi, yang dikenal sebagai versi lingkungan atau klien, yang tetap kompatibel dengan versi server yang lebih baru.

Versi lingkungan terbaru terus menerima pembaruan hingga versi baru dirilis. Pengguna dapat memilih dari salah satu versi lingkungan yang didukung berikut:

Catatan rilis

Bagian ini mencakup catatan rilis untuk komputasi tanpa server. Catatan rilis diatur menurut tahun dan minggu dalam setahun. Komputasi tanpa server selalu berjalan menggunakan versi terbaru yang tercantum di sini.

Pengaturan memori tinggi tersedia di notebook tanpa server (Pratinjau Umum)

7 Februari 2025

Anda sekarang dapat mengonfigurasi ukuran memori yang lebih tinggi untuk beban kerja notebook komputasi tanpa server Anda. Pengaturan ini dapat diterapkan ke beban kerja notebook interaktif dan terjadwal.

Penggunaan tanpa server dengan memori tinggi memiliki tingkat emisi DBU yang lebih tinggi daripada memori standar.

Untuk informasi selengkapnya, lihat Mengonfigurasi memori tinggi untuk beban kerja tanpa server Anda.

Versi 16.1

5 Februari 2025

Rilis komputasi tanpa server ini kira-kira sesuai dengan Databricks Runtime 16.0 dan Databricks Runtime 16.1.

Fitur baru

  • dukungan Avro untuk skema rekursif: Sekarang Anda dapat menggunakan opsi recursiveFieldMaxDepth dengan fungsi from_avro dan sumber data avro. Opsi ini mengatur kedalaman maksimum untuk rekursi skema pada sumber data Avro. Lihat Membaca dan menulis data Avro streaming.

  • Dukungan yang Diperluas untuk Registri Skema Confluent untuk Avro: Tanpa Server sekarang mendukung referensi skema Avro dengan Confluent Schema Registry. Lihat Mengautentikasi ke Registri Skema Confluent eksternal.

  • Paksa rekalusterisasi pada tabel dengan klasterisasi cair: Anda sekarang dapat menggunakan sintaks OPTIMIZE FULL untuk memaksa rekalusterisasi semua rekaman dalam tabel dengan klasterisasi cair diaktifkan. Lihat Force reclustering untuk semua rekaman.

  • API Delta untuk Python sekarang mendukung kolom identitas: Anda sekarang dapat menggunakan API Delta untuk Python untuk membuat tabel dengan kolom identitas. Lihat Menggunakan kolom identitas di Delta Lake.

  • Membuat tabel berkluster cair selama penulisan streaming: Anda sekarang dapat menggunakan clusterBy untuk mengaktifkan pengklusteran cairan saat membuat tabel baru dengan penulisan Streaming Terstruktur. Lihat Mengaktifkan pengklusteran cairan.

  • Dukungan untuk klausul FULL OPTIMIZE: Komputasi Tanpa Server sekarang mendukung klausul OPTIMIZE FULL. Klausa ini mengoptimalkan semua rekaman dalam tabel yang menggunakan pengklusteran cairan, termasuk data yang mungkin sebelumnya telah diklusterkan.

  • Spesifikasi opsi untuk WITH dalam INSERT dan referensi tabel: Komputasi Tanpa Server sekarang mendukung spesifikasi opsi untuk referensi tabel dan nama tabel pernyataan INSERT yang dapat digunakan untuk mengontrol perilaku sumber data.

  • Fungsi SQL Baru: Fungsi SQL berikut sekarang tersedia pada komputasi tanpa server:

    • try_url_decode adalah versi url_decodeyang toleran terhadap kesalahan.
    • zeroifnull mengembalikan 0 jika ekspresi input zeroifnull()ke fungsi NULL.
    • nullifzero mengembalikan NULL jika input bernilai 0 atau input tersebut jika bukan 0.
    • dayname(expr) mengembalikan akronim bahasa Inggris tiga huruf untuk hari dalam seminggu untuk tanggal tertentu.
    • uniform(expr1, expr2 [,seed]) mengembalikan nilai acak dengan nilai independen dan terdistribusi secara identik dalam rentang angka yang ditentukan.
    • randstr(length) mengembalikan string acak dari length karakter alfa-numerik.
  • Aktifkan evolusi skema otomatis saat menggabungkan data ke dalam tabel Delta: dukungan telah ditambahkan untuk anggota withSchemaEvolution() kelas DeltaMergeBuilder. Gunakan withSchemaEvolution() untuk mengaktifkan evolusi skema otomatis selama MERGE operasi. Contohnya,mergeBuilder.whenMatched(...).withSchemaEvolution().execute()}}.

  • Dukungan untuk kolasi di Apache Spark telah tersedia dalam Pratinjau Umum: Anda sekarang dapat menetapkan kolasi yang sadar bahasa, tidak peka terhadap huruf besar/kecil, dan tidak peka terhadap akses untuk STRING kolom dan ekspresi. Kolasi ini digunakan untuk perbandingan string, pengurutan, operasi pengelompokan, dan banyak fungsi string. Lihat Collation.

  • Dukungan untuk pengurutan di Delta Lake sudah dapat diakses dalam Pratinjau Umum: Anda sekarang dapat menentukan pengurutan untuk kolom saat membuat atau mengubah tabel Delta. Lihat dukungan Collation untuk Delta Lake.

  • modus LITE untuk vakum sedang dalam tahap Pratinjau Umum: Anda sekarang dapat menggunakan VACUUM table_name LITE untuk melakukan operasi vakum yang lebih ringan bobotnya dengan menggunakan metadata di log transaksi Delta. Lihat mode Lengkap vs. mode ringan dan VACUUM.

  • Dukungan untuk membuat parameter klausul USE CATALOG with IDENTIFIER: Klausa IDENTIFIER sekarang didukung untuk pernyataan USE CATALOG. Dengan dukungan ini, Anda dapat membuat parameter katalog saat ini berdasarkan variabel string atau penanda parameter.

  • COMMENT ON COLUMN dukungan untuk tabel dan tampilan: Pernyataan COMMENT ON sekarang mendukung perubahan komentar untuk kolom tampilan dan tabel.

  • Pemanggilan parameter bernama untuk lebih banyak fungsi: Fungsi berikut mendukung pemanggilan parameter bernama :

  • Parameter SYNC METADATA ke perintah REPAIR TABLE didukung dengan metastore Apache Hive: Anda sekarang dapat menggunakan parameter SYNC METADATA dengan perintah REPAIR TABLE untuk memperbarui metadata tabel terkelola metastore Apache Hive. Lihat REPAIR TABLE.

  • Integritas data yang ditingkatkan untuk batch Apache Arrow terkompresi: Untuk melindungi lebih lanjut dari kerusakan data, setiap LZ4 batch Panah terkompresi sekarang menyertakan konten LZ4 dan checksum blok. Lihat Deskripsi Format Kerangka LZ4.

  • Driver Oracle JDBC Terpasang: Komputasi Tanpa Server sekarang memiliki Driver Oracle JDBC terpasang. Jika Anda menggunakan JAR driver JDBC yang diunggah pelanggan melalui DriverManager, Anda harus menulis ulang skrip untuk secara eksplisit menggunakan JAR kustom. Jika tidak, driver bawaan akan digunakan. Pengemudi ini hanya mendukung Federasi Lakehouse. Untuk penggunaan lain, Anda harus menyediakan driver Anda sendiri.

  • Kesalahan lebih rinci untuk tabel Delta yang diakses dengan jalur: Pengalaman pesan kesalahan baru untuk tabel Delta yang diakses menggunakan jalur sekarang tersedia. Semua pengecualian sekarang diteruskan ke pengguna. Pengecualian DELTA_MISSING_DELTA_TABLE sekarang diperuntukkan ketika file dasar tidak dapat dibaca sebagai tabel Delta.

Perubahan perilaku

  • Perubahan besar: RStudio yang dihosting mencapai akhir masa pakai: Dengan rilis ini, Server RStudio yang dihosting Databricks telah mencapai akhir masa pakai dan tidak tersedia di ruang kerja Azure Databricks apa pun yang berjalan pada komputasi serverless. Untuk mempelajari lebih lanjut dan melihat daftar alternatif untuk RStudio, lihat penghentian server RStudio yang di-host.

  • perubahan Melanggar: Penghapusan dukungan untuk mengubah jenis byte, short, int, dan long ke jenis yang lebih luas: Untuk memastikan perilaku yang konsisten di seluruh tabel Delta dan Iceberg, perubahan jenis data berikut tidak dapat lagi diterapkan ke tabel dengan fitur pelesiran jenis diaktifkan:

    • byte, short, int dan long ke decimal.
    • byte, short, dan int ke double.
  • Penguraian pola regex yang benar dengan negasi dalam pengelompokan karakter berlapis: Rilis ini mencakup perubahan untuk mendukung penguraian pola regex yang benar dengan negasi dalam pengelompokan karakter berlapis. Misalnya, [^[abc]] akan diuraikan sebagai "karakter apa pun yang BUKAN salah satu 'abc'".

    Selain itu, perilaku Photon tidak konsisten dengan Spark untuk kelas karakter berlapis. Pola regex yang berisi kelas karakter berlapis tidak akan lagi menggunakan Photon, dan sebaliknya akan menggunakan Spark. Kelas karakter berlapis adalah pola apa pun yang berisi tanda kurung siku dalam tanda kurung siku, seperti [[a-c][1-3]].

  • Meningkatkan deteksi kecocokan duplikat di Delta Lake MERGE:MERGE sekarang mempertimbangkan kondisi yang ditentukan dalam klausa WHEN MATCHED. Lihat Upsert pada tabel Delta Lake menggunakan merge.

  • Fungsionalitas addArtifact() sekarang konsisten di seluruh jenis komputasi: Saat Anda menggunakan addArtifact(archive = True) untuk menambahkan dependensi ke komputasi tanpa server, arsip secara otomatis dibongkar. Perubahan ini membuat perilaku addArtifact(archive = True) konsisten dengan komputasi pengguna tunggal, yang sudah mendukung pembongkaran arsip secara otomatis.

  • Tipe data VARIANT tidak dapat lagi digunakan dengan operasi yang memerlukan perbandingan: Anda tidak dapat menggunakan klausul atau operator berikut dalam kueri yang menyertakan jenis data VARIANT:

    • DISTINCT
    • INTERSECT
    • EXCEPT
    • UNION
    • DISTRIBUTE BY

    Selain itu, Anda tidak dapat menggunakan fungsi DataFrame ini:

    • df.dropDuplicates()
    • df.repartition()

    Operasi ini melakukan perbandingan, dan perbandingan yang menggunakan jenis data VARIANT menghasilkan hasil yang tidak terdefinisi dan tidak didukung di Databricks. Jika Anda menggunakan jenis VARIANT dalam beban kerja atau tabel Azure Databricks Anda, Databricks merekomendasikan perubahan berikut:

    • Perbarui kueri atau ekspresi untuk secara eksplisit melemparkan nilai VARIANT ke jenis data non-VARIANT.
    • Jika Anda memiliki bidang yang harus digunakan dengan salah satu operasi di atas, ekstrak bidang tersebut dari jenis data VARIANT dan simpan menggunakan jenis data non-VARIANT.

    Lihat data varian kueri.

Perbaikan bug

  • Sekarang, offset zona waktu mencakup detik saat diserialkan ke format CSV, JSON, dan XML: Tanda waktu dengan offset zona waktu yang mencakup detik (umum untuk tanda waktu dari sebelum 1900) mengabaikan detik saat diserialkan ke CSV, JSON, dan XML. Formatter tanda waktu default telah diperbaiki dan sekarang mengembalikan nilai offset yang benar untuk tanda waktu ini.

Perubahan lainnya

  • Mengganti nama kode kesalahan untuk sumber Streaming Terstruktur cloudFiles: Kode kesalahan berikut telah diganti namanya:
    • _LEGACY_ERROR_TEMP_DBR_0143 diganti namanya menjadi CF_INCORRECT_STREAM_USAGE.
    • _LEGACY_ERROR_TEMP_DBR_0260 diganti namanya menjadi CF_INCORRECT_BATCH_USAGE .

Versi 15.4

28 Oktober 2024

Rilis komputasi tanpa server ini kira-kira sesuai dengan Databricks Runtime 15.4

Fitur baru

  • Fungsi validasi UTF-8: Rilis ini memperkenalkan fungsi berikut untuk memvalidasi string UTF-8:
    • is_valid_utf8 memverifikasi apakah string adalah string UTF-8 yang valid.
    • make_valid_utf8 mengonversi string UTF-8 yang berpotensi tidak valid ke string UTF-8 yang valid menggunakan karakter substitusi.
    • validate_utf8 menimbulkan kesalahan jika input bukan string UTF-8 yang valid.
    • try_validate_utf8 mengembalikan NULL jika input bukan string UTF-8 yang valid.
  • Aktifkan UniForm Iceberg menggunakan ALTER TABLE: Anda sekarang dapat mengaktifkan UniForm Iceberg pada tabel yang ada tanpa menulis ulang file data. Lihat Mengaktifkan pembacaan menggunakan Iceberg pada tabel yang ada.
  • try_url_decode fungsi: Rilis ini memperkenalkan fungsi try_url_decode , yang mendekode string yang dikodekan URL. Jika string tidak dalam format yang benar, fungsi mengembalikan alih-alih NULL meningkatkan kesalahan.
  • Secara opsional memungkinkan pengoptimal untuk mengandalkan batasan kunci asing yang tidak diberlakukan: Untuk meningkatkan performa kueri, Anda sekarang dapat menentukan kata kunci RELY pada batasan FOREIGN KEY saat Anda MEMBUAT atau MENGUBAH tabel.
  • Pekerjaan paralel berjalan untuk penimpaan selektif: Penimpaan Selektif menggunakan replaceWhere sekarang menjalankan proses yang menghapus data dan menyisipkan data baru secara paralel, meningkatkan kinerja kueri dan utilisasi kluster.
  • Peningkatan performa untuk umpan data perubahan dengan penimpaan selektif: Penimpaan selektif dengan menggunakan replaceWhere pada tabel dengan umpan data perubahan tidak lagi membuat file data perubahan terpisah untuk data yang disisipkan. Operasi ini menggunakan kolom tersembunyi _change_type yang ada di file data Parquet dasar untuk merekam perubahan tanpa peningkatan volume tulis.
  • Latensi kueri yang disempurnakan COPY INTO untuk perintah: Rilis ini menyertakan perubahan yang meningkatkan latensi kueri untuk COPY INTO perintah. Peningkatan ini diimplementasikan dengan membuat pemuatan negara oleh rocksDB state store asinkron. Dengan perubahan ini, Anda akan melihat peningkatan pada waktu mulai untuk kueri dengan status besar, seperti kueri dengan sejumlah besar file yang sudah diserap.
  • Dukungan untuk menghilangkan fitur tabel batasan pemeriksaan: Sekarang Anda dapat menghilangkan fitur tabel checkConstraints dari tabel Delta menggunakan ALTER TABLE table_name DROP FEATURE checkConstraints. Lihat Menonaktifkan batasan pemeriksaan.

Perubahan perilaku

  • Perubahan pengikatan Skema untuk tampilan: Ketika tipe data dalam kueri yang mendasari tampilan berubah dari tipe yang digunakan ketika tampilan pertama kali dibuat, Databricks tidak lagi menimbulkan kesalahan untuk referensi terhadap tampilan ketika tidak ada konversi aman yang dapat dilakukan.

    Sebagai gantinya, tampilan mengkompensasi dengan menggunakan aturan transmisi reguler jika memungkinkan. Perubahan ini memungkinkan Databricks untuk mentolerir perubahan skema tabel dengan lebih mudah.

  • Melarang toleransi sintaksis yang tidak terdokumentasi ! untuk NOT logika boolean luar: Databricks tidak akan lagi mentolerir penggunaan ! sebagai sinonim untuk NOT di luar logika boolean. Perubahan ini mengurangi kebingungan, selaras dengan standar SQL, dan membuat SQL lebih portabel. Contohnya:

    CREATE ... IF ! EXISTS, IS! NULL, properti kolom atau bidang ! NULL, ! IN dan ! BETWEEN harus diganti dengan:

    CREATE ... IF NOT EXISTS, IS NOT NULL, properti kolom atau bidang NOT NULL, NOT IN dan NOT BETWEEN.

    Operator ! awalan boolean (misalnya !is_mgr atau !(true AND false)) tidak terpengaruh oleh perubahan ini.

  • Melarang bagian sintaks definisi kolom yang tidak terdokumentasi dan tidak diolah pada tampilan: Databricks mendukung CREATE VIEW dengan kolom bernama dan komentar kolom.

    Spesifikasi jenis kolom, batasan NOT NULL, atau DEFAULT telah ditoleransi dalam sintaks tanpa memiliki efek apa pun. Databricks akan menghapus toleransi sintaks ini. Melakukannya mengurangi kebingungan, selaras dengan standar SQL, dan memungkinkan peningkatan di masa mendatang.

  • Penanganan kesalahan yang konsisten untuk decoding Base64 di Spark dan Photon: Rilis ini mengubah cara Photon menangani kesalahan decoding Base64 agar sesuai dengan penanganan Spark dari kesalahan ini. Sebelum perubahan ini, jalur pembuatan kode Photon dan Spark terkadang gagal menaikkan pengecualian penguraian, sementara eksekusi yang ditafsirkan Spark dinaikkan IllegalArgumentException dengan benar atau ConversionInvalidInputError. Pembaruan ini memastikan bahwa Photon secara konsisten menimbulkan pengecualian yang sama dengan Spark selama kesalahan decoding Base64, memberikan penanganan kesalahan yang lebih dapat diprediksi dan dapat diandalkan.

  • Menambahkan batasan CHECK pada kolom yang tidak valid sekarang mengembalikan UNRESOLVED_COLUMN. WITH_SUGGESTION kelas kesalahan: Untuk memberikan pesan kesalahan yang lebih berguna, dalam Databricks Runtime 15.3 ke atas, pernyataan ALTER TABLE ADD CONSTRAINT yang menyertakan batasan CHECK yang merujuk nama kolom yang tidak valid mengembalikan UNRESOLVED_COLUMN. WITH_SUGGESTION kelas kesalahan. Sebelumnya, sebuah INTERNAL_ERROR dikembalikan.

JDK ditingkatkan dari JDK 8 ke JDK 17

15 Agustus 2024

Komputasi tanpa server untuk notebook dan alur kerja telah dimigrasikan dari Java Development Kit (JDK) 8 ke JDK 17 di sisi server. Peningkatan ini mencakup perubahan perilaku berikut:

  • Penguraian pola regex yang benar dengan negasi dalam pengelompokan karakter berlapis: Dengan peningkatan ini, Azure Databricks sekarang mendukung penguraian pola regex yang benar dengan negasi dalam pengelompokan karakter berlapis. Misalnya, [^[abc]] akan diuraikan sebagai "karakter apa pun yang BUKAN salah satu 'abc'".

    Selain itu, perilaku Photon tidak konsisten dengan Spark untuk kelas karakter berlapis. Pola regex yang berisi kelas karakter berlapis tidak akan lagi menggunakan Photon, dan sebaliknya akan menggunakan Spark. Kelas karakter berlapis adalah pola apa pun yang berisi tanda kurung siku dalam tanda kurung siku, seperti [[a-c][1-3]].

Versi 15.1

23 Juli 2024

Rilis komputasi tanpa server ini kira-kira sesuai dengan Databricks Runtime 15.1

Fitur baru

Dukungan untuk sintaks bintang (*) dalam klausa WHERE: Anda sekarang dapat menggunakan sintaks bintang (*) dalam klausa WHERE untuk mengacu semua kolom dari daftar SELECT.

Contohnya,SELECT * FROM VALUES(1, 2) AS T(a1, a2) WHERE 1 IN(T.*).

Perubahan

Pemulihan kesalahan yang ditingkatkan untuk penguraian JSON: Pengurai JSON yang digunakan untuk from_json() dan ekspresi jalur JSON sekarang pulih lebih cepat dari sintaksis cacat, yang mengakibatkan lebih sedikit kehilangan data.

Saat mengalami sintaks JSON yang salah bentuk dalam bidang struct, nilai array, kunci peta, atau nilai peta, pengurai JSON sekarang akan mengembalikan NULL hanya untuk bidang, kunci, atau elemen yang tidak dapat dibaca. Bidang, kunci, atau elemen berikutnya akan diurai dengan benar. Sebelum perubahan ini, pengurai JSON meninggalkan penguraian array, struktur, atau peta dan dikembalikan NULL untuk konten yang tersisa.

Versi 14.3

15 April 2024

Ini adalah versi komputasi tanpa server awal. Versi ini kira-kira sesuai dengan Databricks Runtime 14.3 dengan beberapa modifikasi yang menghapus dukungan untuk beberapa fitur non-serverless dan warisan.

Parameter konfigurasi Spark yang Didukung

Untuk mengotomatiskan konfigurasi Spark pada komputasi tanpa server, Azure Databricks telah menghapus dukungan untuk mengatur sebagian besar konfigurasi Spark secara manual. Anda hanya dapat mengatur parameter konfigurasi Spark berikut secara manual:

  • spark.sql.legacy.timeParserPolicy (Nilai default CORRECTED)
  • spark.sql.session.timeZone (Nilai default Etc/UTC)
  • spark.sql.shuffle.partitions (Nilai default auto)
  • spark.sql.ansi.enabled (Nilai default true)

Pekerjaan yang berjalan pada komputasi tanpa server akan gagal jika Anda mengatur konfigurasi Spark yang tidak ada dalam daftar ini.

Untuk informasi selengkapnya tentang mengonfigurasi properti Spark, lihat Mengatur properti konfigurasi Spark di Azure Databricks.

fungsi input_file tidak digunakan lagi

Fungsi input_file_name(), input_file_block_length(), dan input_file_block_start() tidak digunakan lagi. Menggunakan fungsi-fungsi ini sangat tidak disarankan.

Sebagai gantinya, gunakan kolom metadata file untuk mengambil informasi metadata file.

Perubahan perilaku

Komputasi tanpa server versi 2024.15 menyertakan perubahan perilaku berikut:

  • perbaikan bug unhex(hexStr): Saat menggunakan unhex(hexStr) fungsi , hexStr selalu diisi kiri ke seluruh byte. Sebelumnya fungsi unhex mengabaikan byte paruh pertama. Misalnya: unhex('ABC') sekarang menghasilkan alih-alih x'0ABC'x'BC'.
  • Alias kolom yang dihasilkan secara otomatis sekarang stabil: Saat hasil ekspresi direferensikan tanpa alias kolom yang ditentukan pengguna, alias yang dihasilkan secara otomatis ini sekarang akan stabil. Algoritma baru dapat mengakibatkan perubahan pada nama yang dihasilkan secara otomatis sebelumnya yang digunakan dalam fitur seperti tampilan materialisasi.
  • Pemindaian tabel dengan bidang jenis CHAR sekarang selalu diisi: tabel Delta, tabel JDBC tertentu, dan sumber data eksternal menyimpan data CHAR dalam bentuk tidak berisi tambahan padding. Saat membaca, Azure Databricks sekarang akan mengaitkan data dengan spasi ke panjang yang dinyatakan untuk memastikan semantik yang benar.
  • Konversi dari BIGINT/DECIMAL ke TIMESTAMP akan menghasilkan kesalahan untuk nilai yang melampaui batas: Azure Databricks memungkinkan konversi dari BIGINT dan DESIMAL ke TIMESTAMP dengan memperlakukan nilai sebagai jumlah detik dari epoch Unix. Sebelumnya, Azure Databricks akan mengembalikan nilai overflow, tetapi sekarang menghasilkan pengecualian dalam kasus overflow. Gunakan try_cast untuk mengembalikan NULL alih-alih pengecualian.
  • Eksekusi PySpark UDF telah ditingkatkan agar sesuai dengan perilaku eksekusi UDF yang tepat pada komputasi pengguna tunggal: Perubahan berikut telah dilakukan:
    • UDF dengan jenis pengembalian string tidak lagi secara implisit mengonversi nilai non-string menjadi string. Sebelumnya, UDF dengan jenis str pengembalian akan menerapkan str(..) pembungkus ke hasil terlepas dari jenis data aktual dari nilai yang dikembalikan.
    • UDF dengan jenis pengembalian timestamp tidak lagi secara implisit menerapkan konversi zona waktu ke tanda waktu.