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.

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.

Perubahan perilaku yang akan datang

Bagian ini menyoroti perubahan perilaku yang datang dalam versi komputasi tanpa server berikutnya. Ketika perubahan didorong ke produksi, perubahan akan ditambahkan ke catatan rilis.

September 2024

Perubahan pengikatan skema untuk tampilan

Ketika tipe data dalam perubahan kueri yang mendasar tampilan dari yang digunakan saat tampilan pertama kali dibuat, Databricks tidak akan lagi melemparkan kesalahan untuk referensi ke tampilan ketika tidak ada pemeran aman yang dapat dilakukan. Sebagai gantinya tampilan akan mengkompensasi menggunakan aturan transmisi reguler jika memungkinkan.

Perubahan ini memungkinkan Databricks untuk mentolerir perubahan skema tabel dengan lebih mudah.

Melarang toleransi sintaks yang tidak terdokumentasi ! untuk NOT logika boolean luar

Databricks tidak akan lagi mentolerir penggunaan ! sebagai sinonim untuk NOT di luar logika boolean. Contohnya:

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

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

Perubahan ini mengurangi kebingungan, selaras dengan standar SQL, dan membuat SQL lebih portabel.

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 dalam tampilan

Databricks mendukung CREATE VIEW dengan kolom dan komentar kolom bernama. Spesifikasi jenis kolom, NOT NULL batasan, 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.

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.

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:

Perbaikan bug

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 2024.30

23 Juli 2024

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

Fitur baru

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

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 2024.15

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 tanpa server dan warisan.

Parameter konfigurasi Spark yang didukung

Untuk mengotomatiskan konfigurasi Spark pada komputasi tanpa server, 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 EXCEPTION)
  • 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.

Perintah CACHING API dan SQL tidak didukung

Penggunaan API cache Dataframe dan SQL tidak didukung. Menggunakan salah satu API atau perintah SQL ini akan menghasilkan pengecualian.

API yang tidak didukung:

Perintah SQL yang tidak didukung:

Tampilan sementara global tidak didukung

Pembuatan tampilan sementara global tidak didukung. Menggunakan salah satu perintah ini akan menghasilkan pengecualian:

Sebagai gantinya, Databricks merekomendasikan penggunaan tampilan sementara sesi atau membuat tabel di mana data lintas sesi diperlukan.

CREATE FUNCTION (Eksternal) tidak didukung

Perintah CREATE FUNCTION (External) tidak didukung. Menggunakan perintah ini menghasilkan pengecualian.

Sebagai gantinya, Databricks merekomendasikan penggunaan CREATE FUNCTION (SQL dan Python) untuk membuat UDF.

Tabel Apache Hive SerDe tidak didukung

Tabel Apache Hive SerDe tidak didukung. Selain itu, perintah LOAD DATA yang sesuai yang memuat data ke dalam tabel Apache Hive SerDe tidak didukung. Menggunakan perintah akan menghasilkan pengecualian.

Dukungan untuk sumber data terbatas pada AVRO, BINARYFILE, CSV, DELTA, JSON, KAFKA, ORC, PARQUET, ORC, TEXT, dan XML.

Variabel Apache Hive tidak didukung

Variabel Apache Hive (misalnya ${env:var}, , ${configName}, ${system:var}dan spark.sql.variable) atau referensi variabel konfigurasi menggunakan ${var} sintaks tidak didukung. Menggunakan variabel Apache Hive akan menghasilkan pengecualian.

Sebagai gantinya, gunakan VARIABEL DECLARE, SET VARIABEL, dan referensi variabel sesi SQL dan penanda parameter ('?', atau ':var') untuk mendeklarasikan, memodifikasi, dan mereferensikan status sesi. Anda juga dapat menggunakan klausul IDENTIFIER untuk membuat parameter nama objek dalam banyak kasus.

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: Ketika hasil ekspresi direferensikan tanpa alias kolom yang ditentukan pengguna, alias yang dihasilkan 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 CHAR bidang jenis sekarang selalu diisi: Tabel delta, tabel JDBC tertentu, dan sumber data eksternal menyimpan data CHAR dalam bentuk non-padded. Saat membaca, Databricks sekarang akan mengaitkan data dengan spasi ke panjang yang dinyatakan untuk memastikan semantik yang benar.
  • Transmisi dari BIGINT/DECIMAL ke TIMESTAMP memberikan pengecualian untuk nilai luapan: Databricks memungkinkan transmisi dari BIGINT dan DESIMAL ke TIMESTAMP dengan memperlakukan nilai sebagai jumlah detik dari epoch Unix. Sebelumnya, Databricks akan mengembalikan nilai yang meluap tetapi sekarang melemparkan pengecualian dalam kasus luapan. 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 timestamp jenis pengembalian tidak lagi secara implisit menerapkan konversi zona waktu ke tanda waktu.

Lingkungan sistem

Komputasi tanpa server mencakup lingkungan sistem berikut:

  • Sistem Operasi: Ubuntu 22.04.3 LTS
  • Python: 3.10.12
  • Danau Delta: 3.1.0

Pustaka Python yang diinstal

Pustaka Python berikut diinstal pada komputasi tanpa server secara default. Dependensi tambahan dapat diinstal menggunakan panel sisi Lingkungan . Lihat Menginstal dependensi buku catatan.

Pustaka Versi Pustaka Versi Pustaka Versi
anyio 3.5.0 argon2-cffi 21.3.0 argon2-cffi-bindings 21.2.0
asttoken 2.0.5 astunparse 1.6.3 attrs 22.1.0
backcall 0.2.0 beautifulsoup4 4.11.1 hitam 22.6.0
pemutih 4.1.0 blinker 1.4 boto3 1.24.28
botocore 1.27.96 cachetools 5.3.2 certifi 2022.12.7
cffi 1.15.1 chardet 4.0.0 charset-normalizer 2.0.4
klik 8.0.4 komunikasi 0.1.2 konturpy 1.0.5
cryptography 39.0.1 cycler 0.11.0 Cython 0.29.32
databricks-connect 14.3.1 databricks-sdk 0.20.0 dbus-python 1.2.18
debugpy 1.6.7 decorator 5.1.1 defusedxml 0.7.1
distlib 0.3.8 docstring-to-markdown 0.11 titik masuk 0,4
menjalankan 0.8.3 facets-overview 1.1.1 fastjsonschema 2.19.1
filelock 3.13.1 fonttools 4.25.0 google-auth 2.28.1
googleapis-common-protos 1.62.0 grpcio 1.62.0 grpcio-status 1.62.0
httplib2 0.20.2 idna 3.4 importlib-metadata 4.6.4
ipyflow-core 0.0.198 ipykernel 6.25.0 ipython 8.14.0
ipython-genutils 0.2.0 ipywidgets 7.7.2 jedi 0.18.1
Jeepney 0.7.1 Jinja2 3.1.2 jmespath 0.10.0
joblib 1.2.0 jsonschema 4.17.3 jupyter-client 7.3.4
jupyter-server 1.23.4 jupyter_core 5.2.0 jupyterlab-pygments 0.1.2
jupyterlab-widgets 1.0.0 keyring 23.5.0 kiwisolver 1.4.4
launchpadlib 1.10.16 lazr.restfulclient 0.14.4 lazr.uri 1.0.6
lxml 4.9.1 MarkupSafe 2.1.1 matplotlib 3.7.0
matplotlib-inline 0.1.6 Mccabe 0.7.0 mistune 0.8.4
more-itertools 8.10.0 ekstensi mypy 0.4.3 nbclassic 0.5.2
nbclient 0.5.13 nbconvert 6.5.4 nbformat 5.7.0
nest-asyncio 1.5.6 nodeenv 1.8.0 buku catatan 6.5.2
notebook_shim 0.2.2 numpy 1.23.5 oauthlib 3.2.0
packaging 23.2 pandas 1.5.3 pandocfilters 1.5.0
parso 0.8.3 pathspec 0.10.3 patsy 0.5.3
pexpect=4.8.0 4.8.0 pickleshare 0.7.5 Pillow 9.4.0
pip 22.3.1 platformdir 2.5.2 plotly 5.9.0
pluggy 1.0.0 prometheus-client 0.14.1 prompt-toolkit 3.0.36
protobuf 4.25.3 psutil 5.9.0 psycopg2 2.9.3
ptyprocess 0.7.0 pure-eval 0.2.2 py4j 0.10.9.7
pyarrow 8.0.0 pyarrow-hotfix 0,5 pyasn1 0.5.1
pyasn1-modul 0.3.0 pyccolo 0.0.52 pycparser 2.21
pydantic 1.10.6 pyflakes 3.1.0 Pygments 2.11.2
PyGObject 3.42.1 PyJWT 2.3.0 pyodbc 4.0.32
pyparsing 3.0.9 pyright 1.1.294 pyrsistent 0.18.0
python-dateutil 2.8.2 python-lsp-jsonrpc 1.1.1 python-lsp-server 1.8.0
pytoolconfig 1.2.5 pytz 2022.7 pyzmq 23.2.0
permintaan 2.28.1 tali 1.7.0 rsa 4.9
s3transfer 0.6.2 scikit-learn 1.1.1 scipy 1.10.0
seaborn 0.12.2 SecretStorage 3.3.1 Send2Trash 1.8.0
setuptools 65.6.3 six 1.16.0 sniffio 1.2.0
soupsieve 2.3.2.post1 ssh-import-id 5.11 stack-data 0.2.0
statsmodels 0.13.5 tenacity 8.1.0 terminado 0.17.1
threadpoolctl 2.2.0 tinycss2 1.2.1 tokenize-rt 4.2.1
tomli 2.0.1 tornado 6.1 traitlets=5.0.5 5.7.1
typing_extensions 4.4.0 ujson 5.4.0 unattended-upgrades 0.1
urllib3 1.26.14 virtualenv 20.16.7 wadllib 1.3.6
wcwidth 0.2.5 webencodings=0.5.1 0.5.1 websocket-client 0.58.0
whatthepatch 1.0.2 wheel 0.38.4 widgetsnbextension 3.6.1
yapf 0.33.0 Zipp 1.0.0