برنامج التشغيل هذا قيد التطوير النشط. قد لا تكون بعض ميزات ODBC مُطبَّقة بالكامل بعد. ويركّز الإصدار الحالي
على توفير الاتصال الأساسي ووظائف ODBC الجوهرية، مع التخطيط لإضافة مزيد من الميزات في
الإصدارات القادمة.ملاحظاتك قيّمة للغاية، وهي تساعد في توجيه تحديد أولويات الميزات الجديدة والتحسينات. إذا واجهت
قيودًا أو وظائف مفقودة أو سلوكًا غير متوقع، يُرجى مشاركة ملاحظاتك أو طلبات الميزات عبر
متتبع المشكلات على
https://github.com/ClickHouse/clickhouse-odbc/issues
التثبيت على Windows
الاختبار
$reader.GetValue(0) يجب أن يظهر إصدار خادم ClickHouse
لديك.
معلمات التكوين
Url: يحدد عنوان endpoint الكامل عبر HTTP(S) لخادم ClickHouse. ويشمل ذلك البروتوكول والمضيف والمنفذ ومسارًا اختياريًا.Username: اسم المستخدم المستخدم للمصادقة مع خادم ClickHouse.Password: كلمة المرور المرتبطة باسم المستخدم المحدد. وإذا لم يتم توفيرها، فسيتصل برنامج التشغيل من دون مصادقة بكلمة مرور.Database: قاعدة البيانات الافتراضية المستخدمة للاتصال.Timeout: الحد الأقصى للوقت (بالثواني) الذي ينتظره برنامج التشغيل للحصول على استجابة من الخادم قبل إلغاء الطلب.ClientName: معرّف مخصص يُرسل إلى خادم ClickHouse كجزء من البيانات الوصفية الخاصة بالعميل. وهو مفيد لأغراض التتبع أو لتمييز حركة المرور القادمة من تطبيقات مختلفة. ستكون هذه المعلمة جزءًا من ترويسة User-Agent في طلبات HTTP التي يُنشئها برنامج التشغيل.Compression: يفعّل أو يعطّل ضغط HTTP لحمولات الطلبات والاستجابات. وعند تفعيله، يمكنه تقليل استهلاك النطاق الترددي وتحسين الأداء لمجموعات النتائج الكبيرة.SqlCompatibilitySettings: يفعّل إعدادات الاستعلام التي تجعل ClickHouse يتصرف بصورة أقرب إلى قاعدة بيانات علائقية تقليدية. ويكون هذا مفيدًا عندما تُنشأ الاستعلامات تلقائيًا بواسطة أدوات خارجية، مثل Power BI. هذه الأدوات لا تكون عادةً على دراية ببعض السلوكيات الخاصة بـ ClickHouse، وقد تُنتج استعلامات تؤدي إلى أخطاء أو نتائج غير متوقعة. راجع إعدادات ClickHouse المستخدمة بواسطة معلمة التكوين SqlCompatibilitySettings لمزيد من التفاصيل.
- خادم ClickHouse مُثبّت محليًا على مثيل WSL
- مثيل في ClickHouse Cloud.
تكامل Microsoft Power BI
- موصل ClickHouse (موصى به) يستخدم ODBC في الخلفية، لكنه يدعم وضع DirectQuery. في هذا الوضع، ينشئ Power BI استعلامات SQL تلقائيًا ولا يسترجع إلا البيانات المطلوبة لكل تصور أو عملية تصفية.
- موصل ODBC يدعم وضع Import فقط. ينفّذ Power BI الاستعلام الذي يوفّره المستخدم (أو يحدّد الجدول بالكامل) ويستورد مجموعة النتائج كاملةً إلى Power BI. وفي عمليات التحديث اللاحقة، يُعاد استيراد مجموعة البيانات بالكامل.
إعدادات توافق SQL
SqlCompatibilitySettings، تُمكِّن إعدادات استعلام محددة
لمواءمة سلوك ClickHouse بشكل أكبر مع SQL القياسي.
إعدادات ClickHouse التي تفعّلها معلمة التهيئة SqlCompatibilitySettings
value قابلاً لاحتواء قيم فارغة، سيفشل هذا الاستعلام مع الرسالة التالية:
cast_keep_nullable إلى تغيير سلوك CAST بحيث يحافظ على قابلية القيم في معاملاته لأن تكون فارغة. وهذا
يجعل سلوك ClickHouse أقرب إلى سلوك قواعد البيانات الأخرى وإلى معيار SQL لهذا النوع من التحويل.
prefer_column_name_to_alias
يتيح ClickHouse الإشارة إلى التعبيرات في قائمة SELECT نفسها باستخدام أسمائها المستعارة. على سبيل المثال، يجنّب هذا الاستعلام
التكرار ويكون أسهل في الكتابة:
SELECT نفسها،
ولذلك تؤدي مثل هذه الاستعلامات عادةً إلى خطأ. وتظهر المشكلات بشكل أوضح عندما يحمل الاسم المستعار نفس اسم عمود. على سبيل المثال:
value ينبغي أن تجمعه avg(value)؟ افتراضيًا، يفضّل ClickHouse الاسم المستعار، ما يحوّل ذلك فعليًا إلى
تجميع متداخل، وهذا ليس ما تتوقعه معظم الأدوات.
في حد ذاته، نادرًا ما يشكّل هذا مشكلة، لكن بعض أدوات ذكاء الأعمال تُنشئ استعلامات تتضمن استعلامات فرعية تعيد استخدام
الأسماء المستعارة للأعمدة. على سبيل المثال، غالبًا ما يُنشئ Power BI استعلامات مشابهة لما يلي:
C1 الخطأ التالي:
C1 على أنه عمود من
الاستعلام الفرعي. وللحفاظ على سلوك مماثل في ClickHouse والسماح بتشغيل مثل هذه الاستعلامات من دون أخطاء، يعمل برنامج تشغيل ODBC
على تمكين prefer_column_name_to_alias.
في معظم الحالات، لا ينبغي أن يسبب تمكين هذه الإعدادات أي مشكلة. ومع ذلك، فإن المستخدمين الذين يكون إعداد readonly مضبوطًا على 1
لا يمكنهم تغيير أي إعدادات، حتى في استعلامات SELECT. وبالنسبة لهؤلاء المستخدمين، فإن تمكين SqlCompatibilitySettings سيؤدي
إلى حدوث خطأ. يوضح القسم التالي كيفية جعل معلمة التهيئة هذه تعمل مع مستخدمي القراءة فقط.
تشغيل إعدادات توافق SQL مع المستخدمين ذوي صلاحية القراءة فقط
SqlCompatibilitySettings، سيواجه المستخدم الذي ضُبط لديه
إعداد readonly على 1 خطأً، لأن برنامج التشغيل يحاول تعديل إعدادات الاستعلام:
SELECT المنفردة.
توجد عدة طرق لمعالجة ذلك.
الخيار 1. ضبط readonly على 2
هذا هو الخيار الأبسط. يتيح ضبط readonly على 2 تغيير الإعدادات مع إبقاء المستخدم في وضع القراءة فقط.
readonly على 2 هو أسهل طريقة موصى بها لحل هذه المشكلة. إذا
لم ينجح ذلك معك، فاستخدم الخيار الثاني.
الخيار 2. تغيير إعدادات المستخدم لتتوافق مع الإعدادات التي يضبطها برنامج تشغيل ODBC.
وهذا أيضًا بسيط: حدِّث إعدادات المستخدم بحيث تكون متوافقة مسبقًا مع ما يحاول برنامج تشغيل ODBC ضبطه.