مجموعة البيانات
استكشاف البيانات
clickhouse-local، وهي أداة صغيرة تعمل من سطر الأوامر
وتوفّر محرك ClickHouse الكامل، مع أنه يمكنك أيضًا استخدام
ClickHouse Cloud أو clickhouse-client أو حتى chDB.
شغّل الاستعلام التالي لاختيار البيانات من حاوية S3 حيث تُخزَّن البيانات:
Query
Response
ᴺᵁᴸᴸ، لذا يمكننا إضافة بعض الشروط الإضافية
إلى الاستعلام للحصول على بيانات أكثر فائدة:
Query
DESCRIBE:
Query
Response
تحميل البيانات إلى ClickHouse
clickhouse-server
أو ClickHouse Cloud.
لإنشاء الجدول، شغّل الأمر التالي:
Query
LowCardinality
في عدة أعمدة، إذ يغيّر التمثيل الداخلي للبيانات
بحيث تصبح أنواع البيانات مرمَّزةً باستخدام القاموس. ويسهم التعامل مع البيانات المرمَّزة بالقاموس
في تحسين أداء استعلامات SELECT بشكل كبير في كثير من التطبيقات.
بالإضافة إلى ذلك، يُنشأ عمودان UInt32 من نوع MATERIALIZED، هما mercator_x وmercator_y،
لربط إحداثيات خط العرض/خط الطول بإسقاط Web Mercator
لتسهيل تقسيم الخريطة إلى مربعات:
longitude + 180يزيح نطاق خط الطول من [-180, 180] إلى [0, 360]- تؤدي القسمة على 360 إلى تطبيع هذه القيمة لتصبح بين 0 و1
- يؤدي الضرب في
0xFFFFFFFF(تمثيل سداسي عشري لأقصى عدد صحيح غير موقّع من 32 بت) إلى تحجيم هذه القيمة المُطبَّعة إلى النطاق الكامل لعدد صحيح من 32 بت
latitude + 90يزيح خط العرض من [-90, 90] إلى [0, 180]- تؤدي القسمة على 360 ثم الضرب في pi() إلى التحويل إلى راديان من أجل الدوال المثلثية
- يمثّل الجزء
log(tan(...))جوهر صيغة إسقاط ميركاتور - يؤدي الضرب في
0xFFFFFFFFإلى التحجيم إلى النطاق الكامل لعدد صحيح من 32 بت
MATERIALIZED أن يحسب ClickHouse قيم هذه
الأعمدة عند INSERT البيانات، من دون الحاجة إلى تحديد هذه الأعمدة (التي لا تُعدّ
جزءًا من مخطط البيانات الأصلي) في تعليمة `INSERT.
يُرتَّب الجدول بحسب mortonEncode(mercator_x, mercator_y)، الذي يُنتج
منحنى Z-order لملء الفراغ لـ mercator_x وmercator_y من أجل تحسين
أداء الاستعلامات الجغرافية المكانية بشكل كبير. ويضمن هذا الترتيب وفق منحنى Z-order أن تكون البيانات
منظَّمة فعليًا بحسب التقارب المكاني:
minmax لتسريع البحث: