تشغيل الاستعلامات الموحدة على MySQL

هام

هذه الميزة في المعاينة العامة.

توضح هذه المقالة كيفية إعداد Lakehouse Federation لتشغيل الاستعلامات الموحدة على بيانات MySQL التي لا تتم إدارتها بواسطة Azure Databricks. لمعرفة المزيد حول Lakehouse Federation، راجع ما هو Lakehouse Federation.

للاتصال بقاعدة بيانات MySQL باستخدام Lakehouse Federation، يجب عليك إنشاء ما يلي في مخزن metastore الخاص بك في كتالوج Azure Databricks Unity:

  • اتصال بقاعدة بيانات MySQL.
  • كتالوج خارجي يعكس قاعدة بيانات MySQL في كتالوج Unity بحيث يمكنك استخدام بناء جملة استعلام كتالوج Unity وأدوات إدارة البيانات لإدارة وصول مستخدم Azure Databricks إلى قاعدة البيانات.

قبل البدء

متطلبات مساحة العمل:

  • مساحة العمل ممكنة ل Unity Catalog.

متطلبات الحساب:

  • اتصال الشبكة من نظام مجموعة Databricks Runtime أو مستودع SQL إلى أنظمة قاعدة البيانات الهدف. راجع توصيات الشبكات ل Lakehouse Federation.
  • يجب أن تستخدم مجموعات Azure Databricks Databricks وقت تشغيل Databricks 13.3 LTS أو أعلى ووضع الوصول المشترك أو أحادي المستخدم.
  • يجب أن تكون مستودعات SQL Pro أو Serverless ويجب أن تستخدم 2023.40 أو أعلى.

الأذونات المطلوبة:

  • لإنشاء اتصال، يجب أن تكون مسؤول metastore أو مستخدما لديه CREATE CONNECTION الامتياز على مخزن بيانات تعريف كتالوج Unity المرفق بمساحة العمل.
  • لإنشاء كتالوج خارجي، يجب أن يكون لديك CREATE CATALOG الإذن على metastore وأن تكون إما مالك الاتصال أو أن يكون لديك CREATE FOREIGN CATALOG امتياز على الاتصال.

يتم تحديد متطلبات إذن إضافية في كل مقطع يستند إلى المهام التالية.

إنشاء اتصال

يحدد الاتصال مسارا وبيانات اعتماد للوصول إلى نظام قاعدة بيانات خارجي. لإنشاء اتصال، يمكنك استخدام مستكشف الكتالوج CREATE CONNECTION أو الأمر SQL في دفتر ملاحظات Azure Databricks أو محرر استعلام Databricks SQL.

الأذونات المطلوبة: مسؤول Metastore أو المستخدم الذي يتمتع بالامتياز CREATE CONNECTION .

مستكشف الكتالوج

  1. في مساحة عمل Azure Databricks، انقر فوق أيقونة الكتالوج كتالوج.

  2. في أعلى جزء الكتالوج، انقر فوق الأيقونة أيقونة إضافة وحدد إضافة اتصال من القائمة.

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

  3. أدخل اسم اتصال سهل الاستخدام.

  4. حدد نوع اتصال MySQL.

  5. أدخل خصائص الاتصال التالية لمثيل MySQL.

    • المضيف: على سبيل المثال، mysql-demo.lb123.us-west-2.rds.amazonaws.com
    • المنفذ: على سبيل المثال، 3306
    • المستخدم: على سبيل المثال، mysql_user
    • كلمة المرور: على سبيل المثال، password123
  6. (اختياري) انقر فوق اختبار الاتصال للتأكد من أنه يعمل.

  7. (اختياري) إضافة تعليق.

  8. انقر فوق Create.

SQL

قم بتشغيل الأمر التالي في دفتر ملاحظات أو محرر استعلام Databricks SQL.

CREATE CONNECTION <connection-name> TYPE mysql
OPTIONS (
  host '<hostname>',
  port '<port>',
  user '<user>',
  password '<password>'
);

نوصي باستخدام أسرار Azure Databricks بدلا من سلاسل النص العادي للقيم الحساسة مثل بيانات الاعتماد. على سبيل المثال:

CREATE CONNECTION <connection-name> TYPE mysql
OPTIONS (
  host '<hostname>',
  port '<port>',
  user secret ('<secret-scope>','<secret-key-user>'),
  password secret ('<secret-scope>','<secret-key-password>')
)

إذا كان يجب استخدام سلاسل النص العادي في أوامر SQL لدفتر الملاحظات، تجنب اقتطاع السلسلة عن طريق الهروب من الأحرف الخاصة مثل $ مع \. على سبيل المثال: \$.

للحصول على معلومات حول إعداد البيانات السرية، راجع إدارة البيانات السرية.

إنشاء كتالوج خارجي

يعكس الكتالوج الخارجي قاعدة بيانات في نظام بيانات خارجي بحيث يمكنك الاستعلام عن الوصول إلى البيانات وإدارتها في قاعدة البيانات هذه باستخدام Azure Databricks وUnity Catalog. لإنشاء كتالوج خارجي، يمكنك استخدام اتصال بمصدر البيانات الذي تم تعريفه بالفعل.

لإنشاء كتالوج خارجي، يمكنك استخدام مستكشف الكتالوج CREATE FOREIGN CATALOG أو أمر SQL في دفتر ملاحظات Azure Databricks أو محرر استعلام Databricks SQL.

الأذونات المطلوبة: CREATE CATALOG إذن على metastore وإما ملكية الاتصال أو الامتياز CREATE FOREIGN CATALOG على الاتصال.

مستكشف الكتالوج

  1. في مساحة عمل Azure Databricks، انقر فوق أيقونة الكتالوج كتالوج لفتح مستكشف الكتالوج.

  2. في أعلى جزء الكتالوج، انقر فوق الأيقونة أيقونة إضافة وحدد إضافة كتالوج من القائمة.

    بدلا من ذلك، من صفحة الوصول السريع، انقر فوق الزر كتالوجات ، ثم انقر فوق الزر إنشاء كتالوج .

  3. اتبع الإرشادات لإنشاء كتالوجات خارجية في إنشاء كتالوجات.

SQL

قم بتشغيل أمر SQL التالي في دفتر ملاحظات أو محرر Databricks SQL. العناصر الموجودة بين قوسين اختيارية. استبدل قيم العنصر النائب:

  • <catalog-name>: اسم الكتالوج في Azure Databricks.
  • <connection-name>: كائن الاتصال الذي يحدد مصدر البيانات والمسار وبيانات اعتماد الوصول.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>;

عمليات الدفع المدعومة

يتم دعم القوائم المنبثقة التالية على جميع الحوسبة:

  • عوامل التصفية
  • التوقعات
  • الحد
  • الدالات: جزئية، فقط لتعبيرات التصفية. (دالات السلسلة، والدالات الرياضية، ودالات التاريخ والوقت والطوابع الزمنية، والدالات المتنوعة الأخرى، مثل الاسم المستعار، والصب، وSortOrder)

يتم دعم عمليات الدفع التالية على Databricks Runtime 13.3 LTS وما فوق، وعلى مستودعات SQL:

  • التجميعات
  • عوامل التشغيل منطقية
  • الدالات الرياضية التالية (غير معتمدة إذا تم تعطيل ANSI): +, -, *, ٪, /
  • الفرز، عند استخدامه مع الحد

لا يتم دعم القوائم المنبثقة التالية:

  • عمليات الربط
  • وظائف Windows

تعيينات نوع البيانات

عند القراءة من MySQL إلى Spark، يتم تعيين أنواع البيانات كما يلي:

نوع MySQL نوع Spark
bigint (إذا لم يكن موقع)، عشري نوع عشري
tinyint*, int, integer, mediumint, smallint IntegerType
bigint (إذا تم توقيعه) LongType
عائم FloatType
مزدوج DoubleType
حرف، تعداد، تعيين نوع CharType
حروف متنوعة VarcharType
json، نص طويل، نص متوسط، نص، نص صغير StringType
ثنائي، blob، varbinary، varchar ثنائي نوع ثنائي
بت، منطقي BooleanType
التاريخ والسنة DateType
التاريخ والوقت والطوابع الزمنية** TimestampType/TimestampNTZType

tinyint(1) signed يتم التعامل معها على أنها منطقية وتحويلها إلى BooleanType. راجع مرجع * الموصل/J عند القراءة من MySQL، يتم تعيين MySQL Timestamp إلى Spark TimestampType إذا preferTimestampNTZ = false (افتراضي). يتم تعيين MySQL Timestamp إلى TimestampNTZType إذا .preferTimestampNTZ = true