إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على:
Databricks SQL
Databricks Runtime
Unity Catalog فقط
SYNC استخدم الأمر لترقية الجداول الخارجية في Hive Metastore إلى جداول خارجية في كتالوج Unity. يمكنك أيضا استخدام SYNC لترقية جداول Apache Hive المدارة المخزنة خارج تخزين مساحة عمل Databricks (تسمى أحيانا جذر DBFS) إلى جداول خارجية في كتالوج Unity. لا يمكنك استخدامه لترقية جداول Apache Hive المدارة المخزنة في تخزين مساحة العمل. لترقية هذه الجداول، استخدم CREATE TABLE CLONE.
يمكنك استخدام SYNC لإنشاء جداول جديدة في كتالوج Unity من جداول Hive Metastore الموجودة بالإضافة إلى تحديث جداول كتالوج Unity عند تعديل الجداول المصدر في Hive Metastore.
SYNC يمكن تشغيل الأمر على مستوى المخطط باستخدام بناء الجملة SYNC SCHEMA أو لجدول فردي باستخدام بناء الجملةSYNC TABLE.
ينفذ الأمر عملية كتابة (ALTER TABLE) لكل جدول مصدر يقوم بترقية لإضافة بعض خصائص الجدول الإضافية لمسك الدفاتر الخاصة به.
في حالة جداول Delta، لتنفيذ عملية الكتابة، يجب أن يكون للمجموعة أو مستودع SQL الذي يقوم بتشغيل الأمر حق الوصول للكتابة إلى موقع الجدول.
في Databricks Runtime 12.2 LTS أو أعلى، يمكن إيقاف تشغيل هذا السلوك عن طريق تعيين تكوين spark.databricks.sync.command.disableSourceTableWrites Spark إلى true قبل تشغيل SYNC الأمر. عند التعيين إلى true، SYNC لا يضيف خصائص جدول جديدة وبالتالي قد لا يكتشف ما إذا كان قد تمت ترقية الجدول مسبقا إلى كتالوج Unity.
في هذه الحالة، يعتمد بشكل حصري على اسم الجدول لتحديد ما إذا كان قد تمت ترقية الجدول مسبقا إلى كتالوج Unity.
إذا تمت إعادة تسمية الجدول المصدر منذ آخر أمر SYNC، يحتاج المستخدم إلى إعادة تسمية الجدول الوجهة يدويا قبل إعادة تشغيل الأمر SYNC عندما يكون التكوين هو true.
هام
SYNC عند تنفيذ أمر، SET TBLPROPERTIES تضيف العملية خاصية جدول تشير إلى مرجع الجدول الخارجي للكتالوج Unity الهدف. تحسب هذه العملية لقطة Delta جديدة وتضيف إدخالا جديدا إلى سجل Delta للجدول، والكتابة إلى مسار الجدول الهدف في التخزين السحابي.
بناء الجملة
SYNC { SCHEMA target_schema [AS EXTERNAL] FROM source_schema |
TABLE target_table [AS EXTERNAL] FROM source_table }
[SET OWNER principal]
[DRY RUN]
المعلمات
SCHEMASYNCكافة الجداول داخل مخطط.-
مخطط موجود في كتالوج Unity حيث يتم تفويض المستخدم لإنشاء جداول.
-
مخطط موجود في الكتالوج
hive_metastore، والذي يمتلكه المستخدم.
-
TABLESYNCجدول فردي.-
جدول جديد أو موجود في كتالوج Unity في مخطط يتم فيه تفويض المستخدم بإنشاء جداول. إذا كان الجدول موجودا بالفعل، يتم استبداله لمطابقة
source_table، ويجب على المستخدم أيضا امتلاك الجدول. إذا لم يكن الجدول موجودا، إنشاؤه. -
جدول
hive_metastoreموجود يمتلكه المستخدم.
-
-
قم بتعيين مالك الجداول التي تمت ترقيتها في كتالوج Unity اختياريا إلى
principal. المالك الافتراضي هو المستخدم الحالي. AS EXTERNALSYNCجدول أو مخطط مدار من Apache Hive مخزن خارج تخزين مساحة عمل Databricks (يسمى أحيانا جذر DBFS) إلى جداول خارجية في كتالوج Unity. لا يمكنك استخدامAS EXTERNALلترقية جداول Apache Hive المدارة المخزنة في تخزين مساحة العمل.DRY RUNعند تحديد التحقق مما إذا كان يمكن ترقية
source_tableالجداول أو داخلهاsource_schemaدون إنشاء الجداول الهدف أو ترقيتها فعليا. يرجعDRY_RUN_SUCCESSالأمر إذا كان يمكن ترقية جدول.AS EXTERNALبدءا من Databricks Runtime 13.2 وما فوق، يمكن إضافة هذه العبارة الاختيارية لتحديد ترقية الجداول المدارة في hive metastore كجداول خارجية في كتالوج Unity. عند استخدامه معSYNC SCHEMA، فإنه ينطبق على جميع الجداول، بما في ذلك الجداول المدارة فيsource_schema.
المرتجعات
تقرير بالأعمدة التالية:
source_schema STRINGاسم المخطط المصدر. المخطط هو
NULLإذا كان المصدر طريقة عرض مؤقتة غير معتمدة.source_name STRING NOT NULLاسم الجدول المصدر.
source_type STRING NOT NULLنوع الجدول:
MANAGEDأوEXTERNALtarget_catalog STRING NOT NULLالكتالوج الهدف في كتالوج Unity حيث تتم مزامنة الجدول.
target_schema STRING NOT NULLالمخطط الهدف في كتالوج Unity حيث تتم مزامنة الجدول.
target_name STRING NOT NULLاسم الجدول في كتالوج Unity الذي تتم مزامنة الجدول المصدر إليه. يتطابق هذا الاسم مع اسم الجدول المصدر.
status_code STRING NOT NULLرمز حالة لنتيجة
SYNCالأمر للجدول المصدر.description STRINGرسالة وصفية حول حالة أمر المزامنة للجدول المصدر.
رموز الحالة الشائعة التي تم إرجاعها بواسطة SYNC
SYNC يوفر الأمر حقلا فريدا status_code في الإخراج لكل جدول ليتم ترقيته إلى كتالوج Unity الذي يمثل حالة الترقية.
بعض رموز الحالة الشائعة جنبا إلى جنب مع التوصيات لمعالجتها هي:
DRY_RUN_SUCCESS: تشغيل جاف ناجح.يمكن ترقية الجدول إلى كتالوج Unity باستخدام
SYNCالأمر .DBFS_ROOT_LOCATION: جدول موجود في جذر Databricks Filesystem.يقع الجدول في موقع جذر Databricks Filesystem. هذا غير معتمد في كتالوج Unity. انسخ بيانات الجدول إلى موقع كتالوج Unity باستخدام أمر CREATE TABLE مع
DEEP CLONEالخيار .EXTERNAL_TABLE_IN_MANAGED_LOCATION: لا يمكن أن يكون مسار الجدول الخارجي ضمن التخزين المدار.المسار المعطا للجدول الخارجي داخل إدارة التخزين في كتالوج Unity. إذا كان الجدول يحتاج إلى أن يكون ضمن التخزين المدار، فبادر بترقية الجدول كجدول مدار باستخدام أمر CREATE TABLE باستخدام
DEEP CLONEالخيار أو نقل موقع الجدول خارج التخزين المدار في كتالوج Unity.HIVE_SERDE: الجدول غير مؤهل للترقية من Hive Metastore إلى كتالوج Unity. السبب: جدول Hive SerDe.جداول Hive SerDe غير معتمدة من قبل كتالوج Unity. غير الجداول إلى تنسيق Delta واصدر
SYNCالأمر للترقية.INVALID_DATASOURCE_FORMAT: تنسيق مصدر البيانات غير محدد أو غير معتمد.استخدم أحد تنسيقات مصدر البيانات المدعومة: Delta وParquet وCSV وJSON وORC وTEXT
LOCATION_OVERLAP: يتداخل مسار الإدخال مع الجداول الخارجية الأخرى.يتداخل موقع الجدول مع الجداول الخارجية الأخرى. استخدم موقعا مختلفا للجدول أو قم بإزالة الجداول الخارجية المتراكبة.
MULTIPLE_EXT_LOCATIONS: يحتوي مسار الإدخال على مواقع خارجية أخرى.هناك أكثر من موقع خارجي واحد وهي دلائل فرعية لمسار الجدول المتوفر. تحقق مما إذا كانت المواقع الخارجية داخل موقع الجدول ضرورية.
MULTIPLE_TARGET_TABLE: يوجد بالفعل جدول آخر تمت مزامنته. يسمح بجدول هدف واحد فقط لكل جدول مصدر.تمت مزامنة الجدول المصدر بالفعل إلى جدول هدف مختلف مسبقا غير مسموح به. لفرض
SYNCإلى جدول مختلف، قم بإزالة خاصيةupgraded_toالجدول من الجدول المصدر أو قم بإزالة الجدول الذي تمت مزامنته مسبقا من كتالوج Unity إذا لم تعد هناك حاجة إليه.NOT_EXTERNAL: الجدول غير مؤهل للترقية من Hive Metastore إلى كتالوج Unity. السبب: ليس جدولا خارجيا.SYNCلا يدعم الأمر سوى ترحيل الجداول الخارجية إلى كتالوج Unity. بالنسبة للجداول المدارة، قم بإنشاء جدول مدار في كتالوج Unity باستخدام أمر CREATE TABLE معDEEP CLONEالخيار . بدلا من ذلك، استخدمAS EXTERNALعبارة معSYNCالأمر لإنشاء جدول خارجي في كتالوج Unity.READ_ONLY_CATALOG: البيانات داخل كتالوج مشاركة دلتا للقراءة فقط ولا يمكن تعديلها أو حذفها.الكتالوج المختار هو كتالوج مشاركة دلتا للقراءة فقط. يتعذر تحديث الجداول داخل كتالوج للقراءة
SYNCفقط باستخدام الأمر .SUCCESS: تمت مزامنة الجدول بنجاح.TABLE_ALREADY_EXISTS: الجدول الهدف موجود بالفعل.يوجد جدول بنفس اسم الجدول المختار بالفعل في كتالوج Unity. أعد تسمية الجدول الموجود أو أزله في كتالوج Unity وأعد تشغيل
SYNCالأمر.TEMP_TABLE_NOT_SUPPORTED: الجداول المؤقتة أو طرق العرض غير معتمدة.لا يمكن ترقية الجداول أو طرق العرض المؤقتة إلى كتالوج Unity. لاستخدام جداول أو طرق عرض مؤقتة، أعد إنشائها في كتالوج Unity باستخدام الأمر SHOW CREATE TABLE في كتالوج Unity.
TIMEOUT: انتهاء مهلة مهمة المزامنة.استغرقت مهمة أمر المزامنة أكثر من 300 ثانية لإكمالها. قم بالزيادة
spark.databricks.sync.command.task.timeoutإلى قيمة أعلى بالثوان. القيمة الافتراضية هي 300. إذا استمر الخطأ، فاتصل بالدعم.VIEWS_NOT_SUPPORTED: طرق العرض غير معتمدة.أعد إنشاء طرق العرض يدويا باستخدام الأمر SHOW CREATE TABLE في كتالوج Unity.
الأمثلة
-- Sync an existing hive metastore table hive_metastore.default.my_tbl to a Unity Catalog
-- table named main.default.my_tbl.
> SYNC TABLE main.default.my_tbl FROM hive_metastore.default.my_tbl;
source_schema source_name source_type target_catalog target_schema target_name status_code description
------------- ----------- ----------- -------------- ------------- ----------- ----------- ---------------------------------
default my_tbl external main default my_tbl SUCCESS Table main.default.my_tbl synced.
-- Sync an existing managed hive metastore table hive_metastore.default.my_tbl to an external table named main.default.my_tbl in Unity Catalog.
> SYNC TABLE main.default.my_tbl AS EXTERNAL FROM hive_metastore.default.my_tbl;
source_schema source_name source_type target_catalog target_schema target_name status_code description
------------- ----------- ----------- -------------- ------------- ----------- ----------- ---------------------------------
default my_tbl managed main default my_tbl SUCCESS Table main.default.my_tbl synced.
-- SYNC a table in DRY RUN mode to evaluate the upgradability of the hive metastore table.
> SYNC TABLE main.default.my_tbl FROM hive_metastore.default.my_tbl DRY RUN;
source_schema source_name source_type target_catalog target_schema target_name status_code description
------------- ----------- ----------- -------------- ------------- ----------- --------------- ---------------------------------
default my_tbl external main default my_tbl DRY_RUN_SUCCESS
-- SYNC all the eligible tables in schema hive_metastore.mydb to a Unity Catalog schema main.my_db_uc.
-- The upgraded tables in main.my_db_uc will be owned by alf@melmak.et
> SYNC SCHEMA main.my_db_uc FROM hive_metastore.my_db SET OWNER `alf@melmak.et`;
source_schema source_name source_type target_catalog target_schema target_name status_code description
------------- ----------- ----------- -------------- ------------- ----------- ----------- ---------------------------------
...
-- DRY RUN mode of SYNC SCHEMA to evaluate all the tables in a schema
-- hive_metastore.mydb for upgrading to Unity Catalog.
> SYNC SCHEMA main.my_db_uc FROM hive_metastore.my_db DRY RUN;
source_schema source_name source_type target_catalog target_schema target_name status_code description
------------- ----------- ----------- -------------- ------------- ----------- ----------- ---------------------------------
...
-- Sync all tables including managed tables in a schema hive_metastore.mydb
-- as external tables in Unity Catalog.
> SYNC SCHEMA main.my_db_uc AS EXTERNAL FROM hive_metastore.my_db;
source_schema source_name source_type target_catalog target_schema target_name status_code description
------------- ----------- ----------- -------------- ------------- ----------- ----------- ---------------------------------
...