لوگوی سایت
پشتیبانی
کوئری

نکات نوشتن کوئری

در این صفحه با نکات کلیدی نگارش کوئری‌های بهینه، لیمیت سیستمی و الزامات ساخت انواع ویجت آشنا می‌شوید.

پشتیبانی از MySQL

در داده‌لند امکان استفاده از سینتکس و توابع نسخه ۸ پایگاه داده MySQL وجود دارد. موتور کوئری داده‌لند این دستورات را جهت اجرا به فرمت تحلیلی زیرساخت تبدیل می‌نماید.


انحصار دستور SELECT

در صفحه کوئری منحصراً دستور SELECT برای استخراج و تحلیل داده‌ها اجرا می‌شود. دستورات تغییر ساختار یا تغییر داده (نظیر INSERT، UPDATE، DELETE، DROP و ALTER) در این محیط مسدود هستند و مدیریت آن‌ها از طریق بخش‌های مربوطه در رابط کاربری انجام می‌پذیرد.


توابع اختصاصی داده‌لند

علاوه بر توابع استاندارد، توابع اختصاصی متعددی برای سهولت در محاسبات و تبدیل‌های تاریخی توسعه داده شده است (جهت بررسی فهرست توابع، به راهنمای توابع اختصاصی داده‌لند مراجعه نمایید).


لیمیت سیستمی

در صورت عدم تعیین بند LIMIT در کوئری، سیستم به صورت پیش‌فرض لیمیت ۱۰۰۰ ردیفی را صرفاً جهت پیش‌نمایش سریع خروجی اعمال می‌کند. این لیمیت سیستمی بر فرآیند ساخت ویجت یا دانلود داده‌ها اثری ندارد و محاسبات آن‌ها بر روی کل داده‌های خروجی کوئری انجام می‌گیرد:

  • پیش‌نمایش در صفحه کوئری: صرفاً ۱۰۰۰ ردیف اول خروجی نمایش داده می‌شود.
  • ساخت ویجت: تمامی محاسبات و نمودارها بر مبنای کل ردیف‌های خروجی کوئری شکل می‌گیرند.
  • دانلود داده: فایل خروجی شامل تمامی ردیف‌های حاصل از کوئری خواهد بود.
در صورت درج دستی دستور LIMIT در متن کوئری، این محدودیت در تمامی بخش‌ها (شامل ساخت ویجت و دانلود فایل) اعمال خواهد شد.

تطابق با فیلتر هوشمند

جهت هماهنگی کوئری با فیلترهای هوشمند استوری، موارد زیر را در نگارش کوئری لحاظ فرمایید (مراجعه به راهنمای فیلترهای استوری):

  • ارجاع به جداول فیزیکی: فیلترهای استوری منحصراً روی جداول فیزیکی اعمال می‌شوند؛ بنابراین داده‌های نیازمند فیلتر نباید داخل جداول مجازی (مانند CTE یا WITH) تعریف گردند.
  • مستثنی‌سازی با بک‌تیک (`): قرار دادن نام جدول درون بک‌تیک در بندهای FROM یا JOIN، آن ارجاع را از اعمال خودکار فیلترهای استوری معاف می‌سازد.
  • اولویت فیلتر ثابت: شروط تعریف‌شده در بند WHERE به عنوان فیلتر ثابت اولویت دارند و مانع تزریق فیلتر استوری روی همان ستون می‌شوند.

ساخت ویجت از کوئری

موتور ویجت‌ساز داده‌لند ساختاری ستون‌محور (Column-oriented) دارد؛ به این معنا که تمامی ابعاد و مقادیر مورد نیاز برای رسم نمودارها باید در قالب ستون‌های مشخص در خروجی دستور SELECT استخراج شوند:

  • پشتیبانی از ستون‌های JSON: امکان انتخاب کلیدهای داخل ستون‌های JSON به عنوان ستون مبدأ یا ستون گروه‌بندی فراهم است.
  • انعطاف در گروه‌بندی: گروه‌بندی و محاسبات تجمیعی می‌تواند درون دستور SQL (با GROUP BY) انجام شود یا رکوردهای خام استخراج گردیده و گروه‌بندی به ویجت‌ساز سپرده شود؛ نتیجه نهایی در هر دو حالت یکسان است.

متناسب با نوع ویجت انتخابی، الزامات ستون‌های ورودی در خروجی کوئری به شرح زیر است: