این مقاله نمونه های پرس و جو و دستورالعمل هایی را برای استفاده از زبان پرس و جو دیجیتال Azure Digital Twins برای پرس و جو از نمودار دوقلو خود برای کسب اطلاعات ارائه می کند.(برای آشنایی با زبان پرس و جو، به زبان پرس و جو مراجعه کنید.)
مقاله شامل پرس و جوهای نمونه است که ساختار زبان پرس و جو و عملیات رایج پرس و جو را برای دوقلوهای دیجیتال نشان می دهد. همچنین نحوه اجرای پرس و جوهای خود را پس از نوشتن با استفاده از Azure Digital Twins Query API یا یک SDK توضیح می دهد.
اگر پرس و جوهای نمونه زیر را با یک تماس API یا SDK اجرا می کنید، باید متن پرس و جو را در یک خط متراکم کنید.
مستندات مرجع
مرجع زبان پرس و جو را می توان در زیر مرجع در فهرست مطالب سمت چپ برای مستندات Azure Digital Twins یافت. همچنین می توانید با استفاده از لینک های زیر مستقیماً به بخش های مرجع بروید:
نمایش همه دوقلوهای دیجیتال
در اینجا پرس و جوی اساسی است که لیستی از همه دوقلوهای دیجیتال را در نمونه برمی گرداند:
استعلام بر اساس ملک
دوقلوهای دیجیتال را بر اساس ویژگی ها (از جمله شناسه و ابرداده) دریافت کنید:
همانطور که در جستار بالا نشان داده شده است، شناسه یک دوقلو دیجیتال با استفاده از فیلد فراداده $dtId پرس و جو می شود.
اگر از Cloud Shell برای اجرای یک پرس و جو با فیلدهای فراداده که با $ شروع می شوند استفاده می کنید، باید از $ با یک اسلش بک اسلش فرار کنید تا به Cloud Shell بفهمانید که متغیر نیست و باید به صورت تحت اللفظی در متن پرس و جو مصرف شود.
شما همچنین می توانید بر اساس اینکه آیا خاصیت خاصی تعریف شده است، دوقلو بگیرید. در اینجا یک جستجو وجود دارد که دوقلوهایی را دریافت می کند که دارای ویژگی مکان تعریف شده هستند:
این پرس و جو می تواند به شما کمک کند تا دوقلوها را با ویژگی های برچسب آنها، همانطور که در افزودن برچسب به دوقلوهای دیجیتال توضیح داده شده است، بدست آورید. در اینجا یک پرسش وجود دارد که همه دوقلوها را با برچسب قرمز نشان می دهد:
همچنین می توانید بر اساس نوع ملک دوقلو بگیرید. در اینجا یک پرس و جو وجود دارد که دوقلوهایی را دریافت می کند که ویژگی Temperature آنها یک عدد است:
اگر یک ویژگی از نوع Map باشد، می توانید از کلیدها و مقادیر نقشه مستقیماً در پرس و جو استفاده کنید، مانند این:
پرس و جو بر اساس مدل
عملگر IS_OF_MODEL را می توان برای فیلتر بر اساس مدل دوقلو استفاده کرد.
وراثت و نسخه سازی مدل را در نظر می گیرد و اگر دوقلو یکی از شرایط زیر را داشته باشد، برای یک دوقلو به درستی ارزیابی می کند:
- Twin مستقیماً مدل ارائه شده به IS_OF_MODEL() را پیاده سازی می کند، و شماره نسخه مدل روی twin بزرگتر یا مساوی با شماره نسخه مدل ارائه شده است.
- Twin مدلی را پیاده سازی می کند که مدل ارائه شده را به IS_OF_MODEL() گسترش می دهد و شماره نسخه مدل توسعه یافته twin بزرگتر یا مساوی با شماره نسخه مدل ارائه شده است.
به عنوان مثال ، اگر برای دوقلوهای مدل DTMI پرس و جو می کنید: مثال: ویجت ؛ 4 ، پرس و جو تمام دوقلوها را بر اساس نسخه 4 یا بیشتر مدل ویجت باز می گرداند ، و همچنین دوقلوها بر اساس نسخه 4 یا بیشتر از هر مدلوراثت از ویجت.
IS_OF_MODEL می تواند چندین پارامتر مختلف را در اختیار بگیرد و بقیه این بخش به گزینه های مختلف اضافه بار آن اختصاص داده شده است.
ساده ترین استفاده از IS_OF_MODEL فقط یک پارامتر TwinTypename را می گیرد: IS_OF_MODEL (نام TwinTypename). در اینجا یک مثال پرس و جو وجود دارد که در این پارامتر مقداری را منتقل می کند:
برای مشخص کردن یک مجموعه دوقلوی برای جستجو در هنگام وجود بیش از یک (مانند هنگام استفاده از پیوستن) ، پارامتر TwinCollection را اضافه کنید: is_of_model (TwinCollection ، TwinTypename). در اینجا یک مثال پرس و جو وجود دارد که مقداری را برای این پارامتر اضافه می کند:
برای انجام یک مسابقه دقیق ، پارامتر دقیق را اضافه کنید: IS_OF_MODEL (نام TwinTypename ، دقیق). در اینجا یک مثال پرس و جو وجود دارد که مقداری را برای این پارامتر اضافه می کند:
همچنین می توانید هر سه آرگومان را با هم منتقل کنید: IS_OF_MODEL (TwinCollection ، TwinTypename ، دقیق). در اینجا یک مثال پرس و جو وجود دارد که یک مقدار را برای هر سه پارامتر مشخص می کند:
پرس و جو با رابطه
هنگام پرس و جو بر اساس روابط دوقلوهای دیجیتال ، زبان پرس و جو دیجیتال دیجیتال Azure دارای نحوی ویژه ای است.
روابط در بند از FROM به دامنه پرس و جو کشیده می شود. بر خلاف زبان های "کلاسیک" از نوع SQL ، هر بیان در بند FROM یک جدول نیست. در عوض ، بند FROM ، یک رابطه متقابل واردات را بیان می کند. برای گذر از روابط ، دوقلوهای دیجیتال Azure از نسخه سفارشی پیوستن استفاده می کنند.
به یاد بیاورید که با قابلیت های مدل دوقلوهای دیجیتال Azure ، روابط مستقل از دوقلوها وجود ندارند ، به این معنی که روابط در اینجا نمی تواند به طور مستقل پرسیده شود و باید با یک دوقلو گره خورده باشد. برای بازتاب این واقعیت ، از کلمه کلیدی مربوط به بند پیوست استفاده می شود تا مجموعه ای از نوع خاصی از رابطه را که از مجموعه دوقلوی حاصل می شود ، بکشید. سپس پرس و جو باید در بند WHERE فیلتر شود تا نشان دهد کدام دوقلوهای خاص برای استفاده در پرس و جو رابطه (با استفاده از مقادیر DTID $ Twins) استفاده می کنند.
در بخش های زیر نمونه هایی از آنچه به نظر می رسد ارائه شده است.
پرس و جو روابط اساسی
در اینجا یک پرس و جو مبتنی بر رابطه وجود دارد. این قطعه کد تمام دوقلوهای دیجیتال را با خاصیت ID ABC انتخاب می کند و تمام دوقلوهای دیجیتال مربوط به این دوقلوهای دیجیتال از طریق یک رابطه حاوی.
نوع رابطه (موجود در مثال بالا) با استفاده از قسمت نام رابطه از تعریف DTDL آن نشان داده شده است.
توسعه دهنده نیازی به همبستگی این اتصال با یک مقدار کلیدی در بند WHERE ندارد (یا یک مقدار کلیدی را با تعریف پیوست مشخص کنید). این همبستگی به طور خودکار توسط سیستم محاسبه می شود ، زیرا خصوصیات رابطه خود موجودیت هدف را شناسایی می کنند.
پرس و جو توسط منبع یا هدف یک رابطه
شما می توانید از ساختار پرس و جو رابطه برای شناسایی یک دوقلوی دیجیتال که منبع یا هدف یک رابطه است استفاده کنید.
به عنوان مثال ، می توانید با یک دوقلو منبع شروع کنید و روابط آن را دنبال کنید تا دوقلوهای هدف روابط را پیدا کنید. در اینجا نمونه ای از پرس و جو آورده شده است که دوقلوهای هدف روابط فیدز را که از منبع دوقلوی دوقلو حاصل می شود ، پیدا می کند.
همچنین می توانید با هدف رابطه شروع کنید و رابطه را برای یافتن دوقلوی منبع ردیابی کنید. در اینجا نمونه ای از پرس و جو آورده شده است که دوقلو منبع یک رابطه فیدز با دوقلو دوقلوی را پیدا می کند.
خواص یک رابطه را پرس و جو کنید
به طور مشابه با روشی که دوقلوهای دیجیتال از طریق DTDL توصیف شده اند ، روابط نیز می توانند دارای خواص باشند. شما می توانید دوقلوها را بر اساس خصوصیات روابط آنها پرس و جو کنید. زبان پرس و جو دوقلوهای دیجیتال Azure با اختصاص یک نام مستعار به رابطه در بند پیوست ، فیلتر و پیش بینی روابط را امکان پذیر می کند.
به عنوان نمونه ، یک رابطه سرویس دار را در نظر بگیرید که دارای یک خاصیت گزارش شده است. در پرس و جو زیر ، این رابطه به عنوان نام مستعار R برای مراجعه به خاصیت آن داده می شود.
در مثال بالا ، توجه داشته باشید که چگونه گزارش شده خاصیت خود از رابطه با سرویس دهی است (نه برخی از دوقلوهای دیجیتالی که دارای یک رابطه سرویس دهنده است).
پرس و جو با چندین پیوست
حداکثر پنج عضو در یک پرس و جو واحد پشتیبانی می شوند ، که به شما امکان می دهد چندین سطح از روابط را به طور همزمان طی کنید.
برای پرس و جو در مورد چندین سطح از روابط ، از یک بیانیه از بیانیه و به دنبال آن در بیانیه های پیوست استفاده کنید ، جایی که بیانیه های پیوستن روابط را در مورد نتیجه قبلی از یا پیوستن بیان می کنند.
در اینجا نمونه ای از پرس و جو چند جانبه وجود دارد که تمام لامپ های موجود در پانل های نوری در اتاق های 1 و 2 را بدست می آورد.
موارد را بشمارید
با استفاده از بند شمارش انتخاب می توانید تعداد موارد را در یک نتیجه شمارش کنید:
یک بند را اضافه کنید تا تعداد مواردی که معیارهای خاصی را برآورده می کنند ، حساب کنید. در اینجا چند نمونه از شمارش با یک فیلتر کاربردی بر اساس نوع مدل دوقلوی آورده شده است (برای اطلاعات بیشتر در مورد این نحو ، به پرس و جو بر اساس مدل زیر مراجعه کنید):
همچنین می توانید از COUNT به همراه بند پیوست استفاده کنید. در اینجا یک پرس و جو وجود دارد که تمام لامپ های موجود در پانل های نور اتاق های 1 و 2 را در خود جای می دهد:
نتایج فیلتر: موارد برتر را انتخاب کنید
می توانید با استفاده از بند برتر انتخاب ، چندین مورد "بالا" را در یک پرس و جو انتخاب کنید.
نتایج فیلتر: مجموعه بازگشت را با پیش بینی ها مشخص کنید
با استفاده از پیش بینی ها در عبارت SELECT ، می توانید انتخاب کنید که کدام ستون پرس و جو باز خواهد گشت. اکنون طرح ریزی برای هر دو خاصیت بدوی و پیچیده پشتیبانی می شود. برای اطلاعات بیشتر در مورد پیش بینی با دوقلوهای دیجیتال Azure ، به اسناد مرجع Select Clause مراجعه کنید.
در اینجا نمونه ای از پرس و جو است که از طرح ریزی برای بازگشت دوقلوها و روابط استفاده می کند. پرس و جو زیر مصرف کننده ، کارخانه و لبه را از سناریویی که یک کارخانه با شناسه ABC از طریق رابطه کارخانه ای به مصرف کننده مربوط می شود ، پروژه می کند.
همچنین می توانید برای بازگشت یک خاصیت یک دوقلو از طرح ریزی استفاده کنید. پرس و جو زیر نام خاصیت مصرف کنندگان را که مربوط به کارخانه با شناسه ABC از طریق رابطه کارخانه است.
همچنین می توانید از پیش بینی برای بازگشت خاصیت یک رابطه استفاده کنید. مانند مثال قبلی ، پرس و جو زیر نام خاصیت مصرف کنندگان مربوط به کارخانه را با شناسه ABC از طریق رابطه کارخانه. Customer ؛اما اکنون این دو ویژگی از آن رابطه ، prop1 و prop2 را نیز برمی گرداند. این کار را با نامگذاری لبه رابطه و جمع آوری خواص آن انجام می دهد.
همچنین می توانید از نام مستعار برای ساده کردن نمایش داده ها با طرح ریزی استفاده کنید.
پرس و جو زیر همان عملیات را به عنوان مثال قبلی انجام می دهد ، اما نام ملک را به نام تجاری ، اول ، دوم و FactoryArea معرفی می کند.
در اینجا یک پرس و جو مشابه وجود دارد که همان مجموعه ای را که در بالا وجود دارد پرس و جو می کند ، اما فقط دارایی مصرف کننده را به عنوان نام تجاری نامگذاری می کند و کارخانه کامل را به عنوان یک دوقلو پروژه می کند.
با اپراتور IN نمایش داده شد
شما می توانید با ساختن آرایه ای از دوقلوها و پرس و جو با اپراتور IN ، تعداد پرس و جو مورد نیاز خود را به میزان قابل توجهی کاهش دهید.
به عنوان مثال ، سناریویی را در نظر بگیرید که در آن ساختمانها دارای کف و کف هستند که دارای اتاق هستند. برای جستجوی اتاقهای داخل یک ساختمان که داغ است ، یک راه پیروی از این مراحل است.
طبقه های موجود در ساختمان را بر اساس رابطه حاوی پیدا کنید.
برای یافتن اتاق ها، به جای اینکه طبقات را یک به یک در نظر بگیرید و یک جستار JOIN برای پیدا کردن اتاق های هر کدام اجرا کنید، می توانید با مجموعه ای از طبقات ساختمان (به نام Floor در عبارت زیر) استعلام کنید.
سایر نمونه های پرس و جو مرکب
شما می توانید هر یک از انواع پرس و جو را با استفاده از عملگرهای ترکیبی ترکیب کنید تا جزئیات بیشتری را در یک پرس و جو قرار دهید. در اینجا چند نمونه دیگر از پرس و جوهای ترکیبی وجود دارد که برای بیش از یک نوع توصیفگر دوقلو به طور همزمان پرس و جو می کنند.
- از بین دستگاه هایی که اتاق 123 دارد، دستگاه های MxChip را که نقش اپراتور را ایفا می کنند، برگردانید
- دوقلوهایی را به دست آورید که رابطه ای به نام Contains دارند با دوقلو دیگری که شناسه id1 دارد
- تمام اتاق های این مدل اتاق که در طبقه 11 قرار دارند را دریافت کنید
پرس و جوها را با API اجرا کنید
هنگامی که در مورد رشته پرس و جو تصمیم گرفتید، با برقراری تماس با Query API آن را اجرا می کنید.
می توانید مستقیماً با API تماس بگیرید یا از یکی از SDK های موجود برای Azure Digital Twins استفاده کنید.
قطعه کد زیر تماس SDK .net (C#) از یک برنامه مشتری را نشان می دهد:
کوئری مورد استفاده در این فراخوانی لیستی از دوقلوهای دیجیتال را برمی گرداند که مثال بالا با اشیاء BasicDigitalTwin نشان می دهد. نوع برگشت داده های شما برای هر پرس و جو به عباراتی که با عبارت SELECT مشخص می کنید بستگی دارد:
- جستارهایی که با SELECT * FROM شروع می شوند. لیستی از دوقلوهای دیجیتال (که می توانند به عنوان اشیاء BasicDigitalTwin یا دیگر انواع دوقلو دیجیتال سفارشی که ممکن است ایجاد کرده باشید سریال شوند) را برمی گرداند.
- جستارهایی که با فرمت SELECT , , FROM شروع می شوند. دیکشنری را با کلیدهای , و .
- فرمت های دیگر دستورات SELECT را می توان برای بازگرداندن داده های سفارشی ایجاد کرد. ممکن است برای مدیریت مجموعه های نتایج سفارشی شده، کلاس های خود را ایجاد کنید.
پرس و جو با صفحه بندی
تماس های پرس و جو از صفحه بندی پشتیبانی می کند. در اینجا یک مثال کامل از BasicDigitalTwin به عنوان نوع نتیجه پرس و جو با مدیریت خطا و صفحه بندی آورده شده است:
مراحل بعدی
درباره Azure Digital Twins API ها و SDK ها، از جمله Query API که برای اجرای پرس و جوها از این مقاله استفاده می شود، بیشتر بیاموزید.
استراتژی های مؤثر فارکس...
ما را در سایت استراتژی های مؤثر فارکس دنبال می کنید
برچسب :
نویسنده : توران میرهادی
بازدید : <-PostHit->
تاريخ : شنبه
19 فروردين
1402 ساعت: 15:38