ملاحظات إصدار الحوسبة بلا خادم
تشرح هذه المقالة الميزات والسلوكيات المتوفرة حاليا والقادم على الحوسبة بلا خادم لدفاتر الملاحظات والوظائف.
لمزيد من المعلومات حول الحوسبة بلا خادم، راجع الاتصال بالحوسبة بلا خادم.
تصدر Databricks تحديثات بشكل دوري للحساب بلا خادم، وترقية وقت تشغيل الحوسبة بلا خادم تلقائيا لدعم التحسينات والترقيات إلى النظام الأساسي. يحصل جميع المستخدمين على التحديثات نفسها، التي تم طرحها على مدى فترة زمنية قصيرة.
التغييرات السلوكية القادمة
يسلط هذا القسم الضوء على التغييرات السلوكية القادمة في إصدار الحوسبة بدون خادم التالي. عند دفع التغييرات إلى الإنتاج، ستتم إضافتها إلى ملاحظات الإصدار.
سبتمبر 2024
تغيير ربط المخطط لطرق العرض
عندما تتغير أنواع البيانات في استعلام طريقة العرض الأساسي عن تلك المستخدمة عند إنشاء طريقة العرض لأول مرة، لن يطرح Databricks أخطاء للمراجع إلى طريقة العرض عندما لا يمكن تنفيذ إرسال آمن. بدلا من ذلك، ستعوض طريقة العرض باستخدام قواعد التحويل العادية حيثما أمكن ذلك.
يسمح هذا التغيير ل Databricks بالتسامح مع تغييرات مخطط الجدول بسهولة أكبر.
عدم السماح بتسامح بناء الجملة !
غير الموثق للمنطق NOT
المنطقي الخارجي
لن تتسامح Databricks بعد الآن مع استخدام !
كمرادف خارج NOT
المنطق المنطقي. على سبيل المثال:
CREATE ... IF ! EXISTS
، IS! خاصية NULL أو عمود أو حقل و ! IN
! NULL
! يجب استبدال BETWEEN ب:
CREATE ... IF NOT EXISTS
، IS NOT NULL
و، NOT NULL
وخاصية العمود أو الحقل، وNOT BETWEEN
. NOT IN
يقلل هذا التغيير من الارتباك، ويتوافق مع معيار SQL، ويجعل SQL أكثر قابلية للنقل.
عامل تشغيل !
البادئة المنطقية (على سبيل المثال !is_mgr
أو !(true AND false)
) غير متأثر بهذا التغيير.
عدم السماح بالأجزاء غير الموثقة وغير المعالجة من بناء جملة تعريف العمود في طرق العرض
يدعم Databricks CREATE VIEW مع الأعمدة المسماة وتعليقات الأعمدة.
تم التسامح مع مواصفات أنواع NOT NULL
الأعمدة أو القيود أو DEFAULT
في بناء الجملة دون أي تأثير.
سيقوم Databricks بإزالة تفاوت بناء الجملة هذا.
يؤدي القيام بذلك إلى تقليل الارتباك، ويتوافق مع معيار SQL، ويسمح بالتحسينات المستقبلية.
ملاحظات الإصدار
يتضمن هذا القسم ملاحظات الإصدار للحساب بلا خادم. يتم تنظيم ملاحظات الإصدار حسب السنة والأسبوع من السنة. يتم تشغيل الحوسبة بلا خادم دائما باستخدام أحدث إصدار تم إصداره المدرج هنا.
الإصدار 2024.30
23 يوليو 2024
يتوافق إصدار الحوسبة بلا خادم هذا تقريبا مع Databricks Runtime 15.1
الميزات الجديدة
- دعم عبارة star (
*
) فيWHERE
عبارة : يمكنك الآن استخدام عبارة star (*
) في العبارةWHERE
للإشارة إلى جميع الأعمدةSELECT
من القائمة. على سبيل المثال،SELECT * FROM VALUES(1, 2) AS T(a1, a2) WHERE 1 IN(T.*)
التغييرات
تحسين استرداد الأخطاء لتحليل JSON: يسترد محلل JSON المستخدم لتعبيرات
from_json()
مسار JSON و JSON الآن بشكل أسرع من بناء الجملة الذي تم تكوينه بشكل غير صحيح، ما يؤدي إلى فقدان أقل للبيانات.عند مواجهة بناء جملة JSON مشوه في حقل بنية أو قيمة صفيف أو مفتاح خريطة أو قيمة خريطة، سيرجع
NULL
محلل JSON الآن فقط للحقل أو المفتاح أو العنصر غير القابل للقراءة. سيتم تحليل الحقول أو المفاتيح أو العناصر اللاحقة بشكل صحيح. قبل هذا التغيير، تخلى محلل JSON عن تحليل الصفيف أو البنية أو الخريطة وعادNULL
للمحتوى المتبقي.
الإصدار 2024.15
15 أبريل 2024
هذا هو إصدار الحوسبة الأولي بلا خادم. يتوافق هذا الإصدار تقريبا مع Databricks Runtime 14.3 مع بعض التعديلات التي تزيل الدعم لبعض الميزات القديمة وغير التي لا تحتوي على خادم.
معلمات تكوين Spark المدعومة
لأتمتة تكوين Spark على الحوسبة بلا خادم، أزال Databricks الدعم لإعداد معظم تكوينات Spark يدويا. يمكنك تعيين معلمات تكوين Spark التالية يدويا فقط:
spark.sql.legacy.timeParserPolicy
(القيمة الافتراضية هيEXCEPTION
)spark.sql.session.timeZone
(القيمة الافتراضية هيEtc/UTC
)spark.sql.shuffle.partitions
(القيمة الافتراضية هيauto
)spark.sql.ansi.enabled
(القيمة الافتراضية هيtrue
)
ستفشل المهمة التي يتم تشغيلها على الحوسبة بلا خادم إذا قمت بتعيين تكوين Spark غير موجود في هذه القائمة.
لمزيد من المعلومات حول تكوين خصائص Spark، راجع تعيين خصائص تكوين Spark على Azure Databricks.
أوامر التخزين المؤقت لواجهة برمجة التطبيقات وSQL غير مدعومة
استخدام واجهات برمجة التطبيقات لذاكرة التخزين المؤقت ل Dataframe وSQL غير مدعوم. سيؤدي استخدام أي من واجهات برمجة التطبيقات أو أوامر SQL هذه إلى استثناء.
واجهات برمجة التطبيقات غير المدعومة:
- df.cache(), df.persist()
- df.unpersist()
- spark.catalog.cacheTable()
- spark.catalog.uncacheTable()
- spark.catalog.clearCache()
أوامر SQL غير المدعومة:
طرق العرض المؤقتة العمومية غير معتمدة
إنشاء طرق عرض مؤقتة عالمية غير مدعوم. سيؤدي استخدام أي من هذين الأمرين إلى استثناء:
بدلا من ذلك، توصي Databricks باستخدام طرق العرض المؤقتة للجلسة أو إنشاء جداول حيث يلزم تمرير البيانات عبر الجلسات.
الدالة CREATE (خارجية) غير مدعومة
الأمر CREATE FUNCTION (خارجي) غير معتمد. يؤدي استخدام هذا الأمر إلى استثناء.
بدلا من ذلك، توصي Databricks باستخدام CREATE FUNCTION (SQL وPython) لإنشاء UDFs.
جداول Hive SerDe غير معتمدة
جداول Hive SerDe غير معتمدة. بالإضافة إلى ذلك، الأمر LOAD DATA المطابق الذي يقوم بتحميل البيانات في جدول Hive SerDe غير مدعوم. سيؤدي استخدام الأمر إلى استثناء.
يقتصر دعم مصادر البيانات على AVRO و BINARYFILE و CSV و DELTA و JSON و KAFKA و ORC و PARQUET و ORC و TEXT و XML.
متغيرات Hive غير مدعومة
متغيرات الخلية (على سبيل المثال${env:var}
، ${system:var}
${configName}
و، وspark.sql.variable
) أو مراجع متغير التكوين باستخدام بناء الجملة ${var}
غير مدعومة. سيؤدي استخدام متغيرات Hive إلى استثناء.
بدلا من ذلك، استخدم DECLARE VARIABLE و SET VARIABLE ومراجع متغيرات جلسة عمل SQL وعلامات المعلمات ('?'، أو ':var') للإعلان عن حالة جلسة العمل وتعديلها ومراجعها. يمكنك أيضا استخدام عبارة IDENTIFIER لوضع معلمات لأسماء الكائنات في العديد من الحالات.
يتم إهمال input_file الدالات
تم إهمال الدالات input_file_name()و input_file_block_length()و input_file_block_start(). لا ينصح باستخدام هذه الدالات بشكل كبير.
بدلا من ذلك، استخدم عمود بيانات تعريف الملف لاسترداد معلومات بيانات تعريف الملف.
التغيرات السلوكية
يتضمن إصدار الحوسبة بلا خادم 2024.15 التغييرات السلوكية التالية:
- unhex(hexStr) إصلاح الأخطاء: عند استخدام الدالة
unhex(hexStr)
، تتم دائما إضافة hexStr إلى بايت كامل. في السابق تجاهلت الدالة unhex أول نصف بايت. على سبيل المثال:unhex('ABC')
ينتجx'0ABC'
الآن بدلا منx'BC'
. - أصبحت أسماء الأعمدة المستعارة التي تم إنشاؤها تلقائيا مستقرة الآن: عندما تتم الإشارة إلى نتيجة تعبير بدون اسم مستعار لعمود محدد من قبل المستخدم، سيكون هذا الاسم المستعار الذي تم إنشاؤه تلقائيا مستقرا الآن. قد تؤدي الخوارزمية الجديدة إلى تغيير الأسماء التي تم إنشاؤها تلقائيا مسبقا والمستخدمة في ميزات مثل طرق العرض المجسدة.
- تتم الآن دائما إضافة عمليات فحص الجدول باستخدام
CHAR
حقول النوع: تقوم جداول دلتا وجداول JDBC معينة ومصادر البيانات الخارجية بتخزين بيانات CHAR في نموذج غير مبطن. عند القراءة، سيقوم Databricks الآن بضم البيانات بمسافات إلى الطول المعلن لضمان الدلالات الصحيحة. - يلقي من BIGINT/DECIMAL إلى TIMESTAMP استثناء للقيم المتجاوزة: يسمح Databricks بالصب من BIGINT و DECIMAL إلى TIMESTAMP عن طريق معاملة القيمة على أنها عدد الثوان من فترة Unix. في السابق، كانت Databricks ترجع قيما تجاوزها ولكنها تطرح الآن استثناء في حالات تجاوز السعة. استخدم
try_cast
لإرجاع NULL بدلا من استثناء. - تم تحسين تنفيذ PySpark UDF لمطابقة السلوك الدقيق لتنفيذ UDF على حساب المستخدم الفردي: تم إجراء التغييرات التالية:
- لم تعد UDFs ذات نوع إرجاع سلسلة تحول ضمنيا القيم غير السلسلة إلى سلاسل. في السابق، كانت UDFs ذات نوع
str
الإرجاع تطبقstr(..)
برنامج تضمين على النتيجة بغض النظر عن نوع البيانات الفعلي للقيمة التي تم إرجاعها. - لم تعد UDFs ذات
timestamp
أنواع العائدات تطبق ضمنيا تحويل المنطقة الزمنية إلى الطوابع الزمنية.
- لم تعد UDFs ذات نوع إرجاع سلسلة تحول ضمنيا القيم غير السلسلة إلى سلاسل. في السابق، كانت UDFs ذات نوع
بيئة النظام
تتضمن الحوسبة بلا خادم بيئة النظام التالية:
- نظام التشغيل: Ubuntu 22.04.3 LTS
- Python: 3.10.12
- Delta Lake: 3.1.0
مكتبات Python المثبتة
يتم تثبيت مكتبات Python التالية على حساب بلا خادم بشكل افتراضي. يمكن تثبيت تبعيات إضافية باستخدام اللوحة الجانبية للبيئة. راجع تثبيت تبعيات دفتر الملاحظات.
مكتبة | إصدار | مكتبة | إصدار | مكتبة | إصدار |
---|---|---|---|---|---|
anyio | 3.5.0 | argon2-cffi | 21.3.0 | روابط argon2-cffi | 21.2.0 |
الرموز المميزة | 2.0.5 | astunparse | 1.6.3 | سلاسل السلاسل | 22.1.0 |
تثبيت خلفي | 0.2.0 | beautifulsoup4 | 4.11.1 | black | 22.6.0 |
بيض | 4.1.0 | وامض | 1.4 | boto3 | 1.24.28 |
روبوت الدردشة | 1.27.96 | قوالب ذاكرة التخزين المؤقت | 5.3.2 | شهادة | 2022.12.7 |
cffi | 1.15.1 | تجزئة | 4.0.0 | charset-normalizer | 2.0.4 |
نقر | 8.0.4 | الاتصالات | 0.1.2 | مخطط إحاطة | 1.0.5 |
التشفير | 39.0.1 | دورة | 0.11.0 | Cython | 0.29.32 |
اتصال databricks | 14.3.1 | databricks-sdk | 0.20.0 | dbus-python | 1.2.18 |
تصحيح الأخطاء | 1.6.7 | ديكور | 5.1.1 | defusedxml | 0.7.1 |
استياء | 0.3.8 | docstring-to-markdown | 0.11 | نقاط الإدخال | 0.4 |
تنفيذ | 0.8.3 | نظرة عامة على الواجهات | 1.1.1 | fastjsonschema | 2.19.1 |
قفل الملف | 3.13.1 | أصوام الخطوط | 4.25.0 | google-auth | 2.28.1 |
googleapis-common-protos | 1.62.0 | grpcio | 1.62.0 | حالة grpcio | 1.62.0 |
httplib2 | 0.20.2 | idna | 3.4 | بيانات تعريف importlib | 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 |
سيارة جيب | 0.7.1 | جينجا 2 | 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 | أداة إنشاء المفاتيح | 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 | مكابي | 0.7.0 | سوء الحظ | 0.8.4 |
المزيد من التكرارات | 8.10.0 | mypy-extensions | 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 | notebook | 6.5.2 |
notebook_shim | 0.2.2 | numpy | 1.23.5 | أواتهليب | 3.2.0 |
التغليف | 23.2 | pandas | 1.5.3 | عوامل تصفية pandocfilter | 1.5.0 |
parso | 0.8.3 | pathspec | 0.10.3 | بتسي | 0.5.3 |
pexpect | 4.8.0 | pickleshare | 0.7.5 | مخدة | 9.4.0 |
pip | 22.3.1 | المنصات | 2.5.2 | بشكل مخطط | 5.9.0 |
توصيل | 1.0.0 | prometheus-client | 0.14.1 | مجموعة أدوات المطالبة | 3.0.36 |
protobuf | 4.25.3 | psutil | 5.9.0 | psycopg2 | 2.9.3 |
عملية ptyprocess | 0.7.0 | تقييم خالص | 0.2.2 | py4j | 0.10.9.7 |
pyarrow | 8.0.0 | إصلاح pyarrow-hotfix | 0.5 | pyasn1 | 0.5.1 |
وحدات pyasn1 | 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 | تمام | 1.1.294 | pyrsistent | 0.18.0 |
python-dateutil | 2.8.2 | python-lsp-jsonrpc | 1.1.1 | خادم python-lsp | 1.8.0 |
تكوين pytool | 1.2.5 | pytz | 2022.7 | pyzmq | 23.2.0 |
الطلبات | 2.28.1 | حبل | 1.7.0 | rsa | 4.9 |
s3transfer | 0.6.2 | scikit-learn | 1.1.1 | شفرة | 1.10.0 |
بحر محمول | 0.12.2 | مخزن البيانات السرية | 3.3.1 | Send2Trash | 1.8.0 |
أدوات الإعداد | 65.6.3 | ستة | 1.16.0 | شم | 1.2.0 |
شوربة الحساء | 2.3.2.post1 | ssh-import-id | 5.11 | بيانات المكدس | 0.2.0 |
نماذج الإحصائيات | 0.13.5 | مثابره | 8.1.0 | terminado | 0.17.1 |
threadpoolctl | 2.2.0 | tinycss2 | 1.2.1 | tokenize-rt | 4.2.1 |
tomli | 2.0.1 | اعصار | 6.1 | سمات السمات | 5.7.1 |
typing_extensions | 4.4.0 | ujson | 5.4.0 | ترقيات غير مراقبة | 0.1 |
urllib3 | 1.26.14 | virtualenv | 20.16.7 | wadllib | 1.3.6 |
wcwidth | 0.2.5 | ترميزات الويب | 0.5.1 | عميل websocket | 0.58.0 |
whatthepatch | 1.0.2 | دولاب | 0.38.4 | عنصر واجهة المستخدم | 3.6.1 |
yapf | 0.33.0 | Zipp | 1.0.0 |