الأحجام

ينطبق على:وضع علامة Databricks SQL وضع علامة Databricks Runtime 13.3 LTS وما فوق وضع علامة كتالوج Unity فقط

وحدات التخزين هي كائنات كتالوج Unity تمثل وحدة تخزين منطقية في موقع تخزين كائن سحابي. توفر وحدات التخزين قدرات للوصول إلى الملفات وتخزينها وإدارتها وتنظيمها. بينما توفر الجداول الحوكمة عبر مجموعات البيانات الجدولية، تضيف وحدات التخزين الحوكمة عبر مجموعات البيانات غير الجدولية. يمكنك استخدام وحدات التخزين لتخزين الملفات والوصول إليها بأي تنسيق، بما في ذلك البيانات المنظمة وشبه المنظمة وغير المنظمة.

وحدات التخزين هي عناصر مشابهة للجداول وطرق العرض والكائنات الأخرى المنظمة ضمن مخطط في كتالوج Unity.

يمكن إدارة وحدة التخزين أو خارجها.

لمزيد من التفاصيل والقيود، راجع إنشاء وحدات التخزين والعمل معها.

وحدة التخزين المدارة

وحدة التخزين المدارة هي وحدة تخزين تحكمها كتالوج Unity تم إنشاؤها داخل موقع التخزين المدار للمخطط المحتوي. تسمح وحدات التخزين المدارة بإنشاء تخزين مدار للعمل مع الملفات دون حمل المواقع الخارجية وبيانات اعتماد التخزين. لا تحتاج إلى تحديد موقع عند إنشاء وحدة تخزين مدارة، ويتم الوصول إلى الملفات بالكامل للبيانات في وحدات التخزين المدارة من خلال مسارات يديرها كتالوج Unity.

وحدة تخزين خارجية

وحدة التخزين الخارجية هي وحدة تخزين تحكمها كتالوج Unity مسجلة مقابل دليل داخل موقع خارجي.

تسمية وحدة التخزين ومرجعها

اسم وحدة التخزين هو معرف يمكن تأهيله باستخدام كتالوج واسم مخطط في أوامر SQL.

يستخدم مسار الوصول إلى الملفات في وحدات التخزين التنسيق التالي:

/Volumes/<catalog_identifier>/<schema_identifier>/<volume_identifier>/<path>/<file_name>

لاحظ أن Azure Databricks يقوم بتطبيع المعرفات إلى حالة أقل.

يدعم Azure Databricks أيضا نظاما اختياريا dbfs:/ ، لذلك يعمل المسار التالي أيضا:

dbfs:/Volumes/<catalog_identifier>/<schema_identifier>/<volume_identifier>/<path>/<file_name>

إشعار

يمكنك أيضا الوصول إلى البيانات في وحدات التخزين الخارجية باستخدام عناوين URL للتخزين السحابي.

الأمثلة

--- Create an external volume under the directory “my-path”
> CREATE EXTERNAL VOLUME IF NOT EXISTS myCatalog.mySchema.myExternalVolume
        COMMENT 'This is my example external volume'
        LOCATION 's3://my-bucket/my-location/my-path'
 OK

--- Set the current catalog
> USE CATALOG myCatalog;
 OK

--- Set the current schema
> USE SCHEMA mySchema;
 OK

--- Create a managed volume; it is not necessary to specify a location
> CREATE VOLUME myManagedVolume
    COMMENT 'This is my example managed volume';
 OK

--- List the files inside the volume, all names are lowercase
> LIST '/Volumes/mycatalog/myschema/myexternalvolume'
 sample.csv

> LIST 'dbfs:/Volumes/mycatalog/myschema/mymanagedvolume'
 sample.csv

--- Print the content of a csv file
> SELECT * FROM csv.`/Volumes/mycatalog/myschema/myexternalvolume/sample.csv`
 20

> SELECT * FROM csv.`dbfs:/Volumes/mycatalog/myschema/mymanagedvolume/sample.csv`
 20