برنامج التشغيل هذا قيد التطوير النشط. قد لا تكون بعض ميزات ODBC مطبقة بالكامل بعد. يركز الإصدار الحالي
على توفير الاتصال الأساسي والوظائف الأساسية لـ ODBC، مع التخطيط لإضافة ميزات أخرى في
الإصدارات المستقبلية.ملاحظاتك قيّمة للغاية وتساعد في تحديد أولويات الميزات والتحسينات الجديدة. إذا واجهت
قيوداً أو وظائف مفقودة أو سلوكاً غير متوقع، فيرجى مشاركة ملاحظاتك أو طلبات الميزات عبر
متتبع المشكلات على
https://github.com/ClickHouse/clickhouse-odbc/issues
التثبيت على Windows
الاختبار
$reader.GetValue(0)، ينبغي أن يظهر إصدار خادم ClickHouse لديك.
معلمات التكوين
Url: تحدد نقطة نهاية 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 بحيث يحافظ على قابلية القيم الوسيطة لأن تكون NULL. وهذا
يجعل سلوك 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 تعيينه.