SYNC
ينطبق على: 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]
المعلمات
SCHEMA
SYNC
كافة الجداول داخل مخطط.-
مخطط موجود في كتالوج Unity حيث يتم تفويض المستخدم لإنشاء جداول.
-
مخطط موجود في الكتالوج
hive_metastore
، والذي يمتلكه المستخدم.
-
TABLE
SYNC
جدول فردي.-
جدول جديد أو موجود في كتالوج Unity في مخطط يتم فيه تفويض المستخدم بإنشاء جداول. إذا كان الجدول موجودا بالفعل، يتم استبداله لمطابقة
source_table
، ويجب على المستخدم أيضا امتلاك الجدول. إذا لم يكن الجدول موجودا، إنشاؤه. -
جدول
hive_metastore
موجود يمتلكه المستخدم.
-
-
قم بتعيين مالك الجداول التي تمت ترقيتها في كتالوج Unity اختياريا إلى
principal
. المالك الافتراضي هو المستخدم الحالي. AS EXTERNAL
SYNC
جدول أو مخطط مدار من 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
أوEXTERNAL
target_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
------------- ----------- ----------- -------------- ------------- ----------- ----------- ---------------------------------
...