Sunucusuz bilgi işlem sürüm notları
Bu makalede, not defterleri ve işler için sunucusuz işlemde şu anda kullanılabilen ve yaklaşan özellikler ve davranışlar açıklanmaktadır.
Sunucusuz işlem hakkında daha fazla bilgi için bkz . Sunucusuz işlemle bağlantı kurma.
Databricks düzenli aralıklarla sunucusuz işlem güncelleştirmeleri yayımlar ve platforma yapılan iyileştirmeleri ve yükseltmeleri desteklemek için sunucusuz işlem çalışma zamanını otomatik olarak yükselter. Tüm kullanıcılar kısa bir süre içinde dağıtılan aynı güncelleştirmeleri alır.
Yaklaşan davranış değişiklikleri
Bu bölümde, sonraki sunucusuz işlem sürümünde gelen davranış değişiklikleri vurgulanır. Değişiklikler üretime gönderildiğinde sürüm notlarına eklenir.
Eylül 2024
Görünümler için şema bağlama değişikliği
Görünümün temel alınan sorgularındaki veri türleri, görünüm ilk oluşturulduğunda kullanılanlardan değiştiğinde, güvenli bir atama gerçekleştirilemiyorsa Databricks artık görünüme başvurular için hata oluşturmaz. Bunun yerine, görünüm mümkün olduğunda normal atama kurallarının kullanılmasını telafi eder.
Bu değişiklik, Databricks'in tablo şeması değişikliklerini daha hazır bir şekilde tolere etmesine olanak tanır.
Dış boole mantığı için NOT
belgelenmemiş !
söz dizimi toleranslarına izin verme
Databricks artık boole mantığının dışında bir eş NOT
anlamlı olarak kullanımını !
tolere etmeyecektir. Örneğin:
CREATE ... IF ! EXISTS
, IS ! NULL, ! NULL
sütun veya alan özelliği ! IN
ve ! BETWEEN şununla değiştirilmelidir:
CREATE ... IF NOT EXISTS
, IS NOT NULL
, NOT NULL
sütun veya alan özelliği NOT IN
ve NOT BETWEEN
.
Bu değişiklik karışıklığı azaltır, SQL standardıyla uyumludur ve SQL'i daha taşınabilir hale getirir.
Boole ön ek işleci !
(ör. !is_mgr
veya !(true AND false)
) bu değişiklikten etkilenmez.
Görünümlerde sütun tanımı söz diziminin belgelenmemiş ve işlenmemiş bölümlerine izin verme
Databricks, adlandırılmış sütunlar ve sütun açıklamaları ile CREATE VIEW'u destekler.
Sütun türlerinin, NOT NULL
kısıtlamaların veya DEFAULT
belirtiminin söz diziminde herhangi bir etkisi olmadan tolere edilmiştir.
Databricks bu söz dizimi toleranslarını kaldırır.
Bunun yapılması karışıklığı azaltır, SQL standardıyla uyumludur ve gelecekteki iyileştirmelere olanak tanır.
Sürüm notları
Bu bölüm sunucusuz işlem için sürüm notlarını içerir. Sürüm notları yıla ve yılın haftasına göre düzenlenir. Sunucusuz işlem her zaman burada listelenen en son yayınlanan sürümü kullanarak çalışır.
JDK, JDK 8'den JDK 17'ye yükseltilir
15 Ağustos 2024, Ağustos 2024, Saat 20:00
Not defterleri ve iş akışları için sunucusuz işlem, sunucu tarafında Java Development Kit (JDK) 8'den JDK 17'ye geçirildi. Bu yükseltme aşağıdaki davranış değişikliklerini içerir:
Hata düzeltmeleri
İç içe karakter gruplandırmasında olumsuzlama ile regex desenlerinin doğru ayrıştırılması: Bu yükseltmeyle Azure Databricks artık iç içe karakter gruplandırmasında olumsuzlama ile regex desenlerinin doğru ayrıştırma işlemini destekliyor. Örneğin, [^[abc]]
"'abc'lerden biri olmayan herhangi bir karakter" olarak ayrıştırılır.
Buna ek olarak, iç içe karakter sınıfları için Foton davranışı Spark ile tutarsızdı. İç içe karakter sınıfları içeren regex desenleri artık Photon kullanmaz ve spark kullanır. İç içe yerleştirilmiş karakter sınıfı, gibi [[a-c][1-3]]
köşeli ayraçlar içinde köşeli ayraç içeren herhangi bir desendir.
Sürüm 2024.30
23 Temmuz 2024, Saat 2024, Temmuz 2024, Saat 20:00
Bu sunucusuz işlem sürümü kabaca Databricks Runtime 15.1'e karşılık gelir
Yeni özellikler
Yan tümcesinde yıldız (*
) söz dizimi desteği: Artık listedeki tüm sütunlara başvurmak için yan tümcesinde WHERE
yıldız (*
) söz dizimini SELECT
kullanabilirsiniz.WHERE
Örneğin, SELECT * FROM VALUES(1, 2) AS T(a1, a2) WHERE 1 IN(T.*)
.
Değişiklikler
JSON ayrıştırma için geliştirilmiş hata kurtarma: ve JSON yol ifadeleri için from_json()
kullanılan JSON ayrıştırıcısı artık yanlış biçimlendirilmiş söz diziminden daha hızlı kurtarılarak daha az veri kaybına neden olur.
Yapı alanında, dizi değerinde, eşleme anahtarında veya eşleme değerinde hatalı biçimlendirilmiş JSON söz dizimi ile karşılaşıldığında, JSON ayrıştırıcısı artık yalnızca okunamayan alan, anahtar veya öğe için döndürülecektir NULL
. Sonraki alanlar, anahtarlar veya öğeler düzgün şekilde ayrıştırılır. Bu değişiklik öncesinde JSON ayrıştırıcısı dizi, yapı veya eşleme ayrıştırma işlemini bıraktı ve kalan içerik için döndürüldü NULL
.
Sürüm 2024.15
15 Nisan 2024, Saat 2024, Temmuz 2024, Saat 20:00
Bu, ilk sunucusuz işlem sürümüdür. Bu sürüm kabaca Databricks Runtime 14.3'e karşılık gelir ve bazı sunucusuz ve eski özelliklerin desteğini kaldıran bazı değişiklikler içerir.
Desteklenen Spark yapılandırma parametreleri
Sunucusuz işlemde Spark yapılandırmasını otomatikleştirmek için Databricks, Çoğu Spark yapılandırmasının el ile ayarlanması desteğini kaldırmıştır. Yalnızca aşağıdaki Spark yapılandırma parametrelerini el ile ayarlayabilirsiniz:
spark.sql.legacy.timeParserPolicy
(Varsayılan değerEXCEPTION
)spark.sql.session.timeZone
(Varsayılan değerEtc/UTC
)spark.sql.shuffle.partitions
(Varsayılan değerauto
)spark.sql.ansi.enabled
(Varsayılan değertrue
)
Bu listede olmayan bir Spark yapılandırması ayarlarsanız sunucusuz işlem üzerinde çalışan iş başarısız olur.
Spark özelliklerini yapılandırma hakkında daha fazla bilgi için bkz . Azure Databricks'te Spark yapılandırma özelliklerini ayarlama.
input_file işlevleri kullanım dışı bırakıldı
input_file_name(), input_file_block_length() ve input_file_block_start() işlevleri kullanım dışı bırakıldı. Bu işlevlerin kullanılması önerilmez.
Bunun yerine, dosya meta verisi bilgilerini almak için dosya meta verileri sütununu kullanın.
Davranış değişiklikleri
Sunucusuz işlem sürümü 2024.15 aşağıdaki davranış değişikliklerini içerir:
- unhex(hexStr) hata düzeltmesi: İşlev kullanılırken
unhex(hexStr)
, hexStr her zaman bir baytta sola doldurulur. Daha önce unhex işlevi ilk yarım baytı yoksaymıştı. Örneğin:unhex('ABC')
artık yerinex'BC'
üretirx'0ABC'
. - Otomatik oluşturulan sütun diğer adları artık kararlıdır: Kullanıcı tarafından belirtilen bir sütun diğer adı olmadan bir ifadenin sonucuna başvurulduğunda, otomatik olarak oluşturulan bu diğer ad artık kararlı olacaktır. Yeni algoritma, gerçekleştirilmiş görünümler gibi özelliklerde kullanılan önceden otomatik olarak oluşturulan adlarda değişiklik olmasına neden olabilir.
- Tür alanlarıyla
CHAR
tablo taramaları artık her zaman dolduruldu: Delta tabloları, belirli JDBC tabloları ve dış veri kaynakları CHAR verilerini doldurulmayan biçimde depolar. Databricks, okurken doğru semantiği sağlamak için verileri belirtilen uzunlukta boşluklarla doldurmaya devam edecektir. - BIGINT/DECIMAL'den TIMESTAMP'ye atamalar taşan değerler için bir özel durum oluşturur: Databricks, değeri Unix döneminin saniye sayısı olarak değerlendirerek BIGINT ve DECIMAL'den TIMESTAMP'ye dönüştürmeye izin verir. Daha önce Databricks taşan değerler döndürse de taşma durumlarında bir özel durum oluşturur. Özel durum yerine NULL döndürmek için kullanın
try_cast
. - PySpark UDF yürütmesi, tek kullanıcı işlemlerinde UDF yürütmesinin tam davranışıyla eşleşecek şekilde geliştirilmiştir: Aşağıdaki değişiklikler yapılmıştır:
- Dize dönüş türüne sahip UDF'ler artık dize olmayan değerleri örtük olarak dizelere dönüştürmez. Daha önce, dönüş türüne
str
sahip UDF'ler, döndürülen değerin gerçek veri türünden bağımsız olarak sonuda birstr(..)
sarmalayıcı uygulardı. - Dönüş türlerine sahip
timestamp
UDF'ler artık zaman damgalarına örtük olarak saat dilimi dönüştürmesi uygulamaz.
- Dize dönüş türüne sahip UDF'ler artık dize olmayan değerleri örtük olarak dizelere dönüştürmez. Daha önce, dönüş türüne
Sistem ortamı
Sunucusuz işlem aşağıdaki sistem ortamını içerir:
- İşletim Sistemi: Ubuntu 22.04.3 LTS
- Python: 3.10.12
- Delta Gölü: 3.1.0
Yüklü Python kitaplıkları
Aşağıdaki Python kitaplıkları sunucusuz işlemde varsayılan olarak yüklenir. Ortam yan paneli kullanılarak ek bağımlılıklar yüklenebilir. Bkz . Not defteri bağımlılıklarını yükleme.
Kitaplık | Sürüm | Kitaplık | Sürüm | Kitaplık | Sürüm |
---|---|---|---|---|---|
anyio | 3.5.0 | argon2-cffi | 21.3.0 | argon2-cffi-bindings | 21.2.0 |
asttokens | 2.0.5 | astunparse | 1.6.3 | attrs | 22.1.0 |
geri arama | 0.2.0 | beautifulsoup4 | 4.11.1 | siyah | 22.6.0 |
çamaşır suyu | 4.1.0 | yanıp sönen | 1.4 | boto3 | 1.24.28 |
botocore | 1.27.96 | önbellek araçları | 5.3.2 | sertifikalı | 2022.12.7 |
cffi | 1.15.1 | chardet | 4.0.0 | charset-normalizer | 2.0.4 |
tıklama | 8.0.4 | Comm | 0.1.2 | konturlu | 1.0.5 |
şifreleme | 39.0.1 | bisikletçi | 0.11.0 | Cython | 0.29.32 |
databricks-connect | 14.3.1 | databricks-sdk | 0.20.0 | dbus-python | 1.2.18 |
hata ayıklama | 1.6.7 | dekoratör | 5.1.1 | defusedxml | 0.7.1 |
daistlib | 0.3.8 | docstring-to-markdown | 0,11 | giriş noktaları | 0.4 |
Yürütme | 0.8.3 | modellere genel bakış | 1.1.1 | fastjsonschema | 2.19.1 |
dosya kilidi | 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 pencere öğeleri | 1.0.0 | anahtarlık | 23.5.0 | kiwisolver | 1.4.4 |
başlatma çubuğu | 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 | yanlış | 0.8.4 |
more-itertools | 8.10.0 | mypy uzantıları | 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 | not defteri | 6.5.2 |
notebook_shim | 0.2.2 | numpy | 1.23.5 | oauthlib | 3.2.0 |
Ambalaj | 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 | pickleshare | 0.7.5 | Yastık | 9.4.0 |
Pip | 22.3.1 | platformdirs | 2.5.2 | çizim | 5.9.0 |
takılmış | 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 | saf değerlendirme | 0.2.2 | py4j | 0.10.9.7 |
serçe | 8.0.0 | pyarrow düzeltmesi | 0,5 | pyasn1 | 0.5.1 |
pyasn1-modules | 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 | pirsistent | 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 |
istekler | 2.28.1 | ip | 1.7.0 | rsa | 4,9 |
s3transfer | 0.6.2 | scikit-learn | 1.1.1 | scipy | 1.10.0 |
seaborn | 0.12.2 | Gizli Dizi | 3.3.1 | Send2Trash | 1.8.0 |
kurulum araçları | 65.6.3 | Altı | 1.16.0 | sniffio | 1.2.0 |
soupsieve | 2.3.2.post1 | ssh-import-id | 5.11 | stack-data | 0.2.0 |
statsmodeller | 0.13.5 | Azim | 8.1.0 | terminado | 0.17.1 |
threadpoolctl | 2.2.0 | tinycss2 | 1.2.1 | tokenize-rt | 4.2.1 |
tomli | 2.0.1 | hortum | 6.1 | traitlets | 5.7.1 |
typing_extensions | 4.4.0 | ujson | 5.4.0 | katılımsız yükseltmeler | 0,1 |
urllib3 | 1.26.14 | virtualenv | 20.16.7 | wadllib | 1.3.6 |
wcwidth | 0.2.5 | webencodings | 0.5.1 | websocket-client | 0.58.0 |
whatthepatch | 1.0.2 | tekerlek | 0.38.4 | widgetsnbextension | 3.6.1 |
yapf | 0.33.0 | Zipp | 1.0.0 |