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 كافة الجداول داخل مخطط.

    • target_schema

      مخطط موجود في كتالوج Unity حيث يتم تفويض المستخدم لإنشاء جداول.

    • source_schema

      مخطط موجود في الكتالوج hive_metastore ، والذي يمتلكه المستخدم.

  • TABLE

    SYNC جدول فردي.

    • target_table

      جدول جديد أو موجود في كتالوج Unity في مخطط يتم فيه تفويض المستخدم بإنشاء جداول. إذا كان الجدول موجودا بالفعل، يتم استبداله لمطابقة source_table، ويجب على المستخدم أيضا امتلاك الجدول. إذا لم يكن الجدول موجودا، فسيتم إنشاؤه.

    • 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
  ------------- ----------- ----------- -------------- ------------- ----------- -----------     ---------------------------------
  ...