با شروع با سرور Couchbase 7. 0 ، N1QL پشتیبانی کامل از معاملات اسید Couchbase را بر اساس همزمانی خوش بینانه ارائه می دهد. برای مرور کلی از معاملات Couchbase به معاملات مراجعه کنید.
فقط اظهارات DML در یک معامله مجاز است: درج ، upsert ، حذف ، به روزرسانی ، ادغام ، انتخاب ، اجرای عملکرد ، آماده سازی یا اجرای.
بیانیه عملکرد Execute فقط در یک معامله مجاز است اگر عملکرد تعریف شده توسط کاربر حاوی زیرمجموعه های غیر از زیرمجموعه های انتخابی نباشد.
بیانیه های آماده سازی و اجرای فقط در یک معامله برای اظهارات DML ذکر شده در بالا مجاز است.
کلیه اظهارات موجود در یک معامله به همان گره پرس و جو ارسال می شود.
بیانیه
N1QL اظهارات زیر را در پشتیبانی از معاملات Couchbase ارائه می دهد. برای کسب اطلاعات بیشتر و مثال به اسناد مربوط به هر بیانیه مراجعه کنید.
برای شروع معامله ، به شروع معامله مراجعه کنید.
برای مشخص کردن تنظیمات معامله ، به تنظیم معامله مراجعه کنید.
برای تنظیم SavePoint ، به SavePoint مراجعه کنید.
برای بازگرداندن یک معامله ، به معامله برگشت پذیر مراجعه کنید.
برای انجام معامله ، به ارتکاب معامله مراجعه کنید.
تنظیمات و پارامترها
سرویس Query تنظیمات و پارامترهای پشتیبانی از معاملات Couchbase را ارائه می دهد. برای کسب اطلاعات بیشتر و مثال ، به اسناد مربوط به هر پارامتر مراجعه کنید.
معامله ای را که بیانیه متعلق به آن است مشخص می کند.
مشخص می کند که بیانیه یک معامله واحد است.
شماره بیانیه معامله را مشخص می کند.
حداکثر زمان صرف یک عملیات KV را در یک معامله قبل از زمان بندی مشخص می کند.
سطح دوام معامله را مشخص می کند.
پارامتر سطح درخواست TXTIMEOUT TXTIMEOUT تنظیم سطح گره querytxtimeout تنظیم سطح خوشه ای
حداکثر وقت برای صرف یک معامله را قبل از زمان بندی مشخص کنید.
پارامتر سطح درخواست AtrCollection تنظیم سطح گره AtrCollection
مشخص کنید که سابقه معامله فعال در کجا ذخیره شده است.
نحوه تمیز کردن معاملات منقضی شده را مشخص کنید.
مشخص کنید که سوابق معامله فعال برای پاکسازی چند مورد بررسی می شود.
Numatrs Parameter Parameter Parameter numatrs تنظیم سطح گره querynumatrs تنظیم سطح خوشه
تعداد کل سوابق معامله فعال را مشخص کنید.
علاوه بر این ، از پارامتر سطح درخواست اسکن برای مشخص کردن قوام اسکن معامله استفاده می شود. برای جزئیات بیشتر به قوام اسکن معامله مراجعه کنید.
ابزارهای پرس و جو
برای ایجاد معامله Couchbase با استفاده از N1QL ، می توانید از هر یک از ابزاری که برای استفاده از N1QL پرس و جو استفاده می کنید استفاده کنید: Workbench Query ، پوسته CBQ یا API REST QUERY. در نحوه عملکرد این ابزارها هنگام ایجاد معاملات Couchbase تفاوت های جزئی وجود دارد. اینها در بخش های زیر توضیح داده شده است.
توجه داشته باشید که برخی از SDK های Couchbase API را برای پشتیبانی از معاملات Couchbase ارائه می دهند. برای جزئیات بیشتر ، به معاملات مراجعه کنید.
معاملات Couchbase با میز کار پرس و جو
برای اجرای معامله ای که حاوی چندین جمله است ، دنباله اظهارات را در ویرایشگر پرس و جو تهیه کنید. هر بیانیه باید با یک شکل نیمه خاتمه یابد. پس از هر بیانیه ، شما باید SHIFT + ENTER را فشار دهید تا خط جدیدی را بدون اجرای پرس و جو شروع کنید. سپس می توانید برای اجرای معامله ، روی Execute کلیک کنید.
برای اجرای یک بیانیه به عنوان معامله ، به سادگی بیانیه را در ویرایشگر پرس و جو وارد کرده و روی Run به عنوان TX کلیک کنید.
در هر صورت ، نیازی به مشخص کردن پارامتر TXID یا پارامتر txiMplicit نیست. اگر نیاز به مشخص کردن پارامترهای دیگر برای معامله Couchbase دارید ، می توانید از پنجره Preferences Preference Query استفاده کنید.
معاملات Couchbase با پوسته CBQ
برای اجرای معامله حاوی چندین جمله ، می توانید یک بیانیه را به طور همزمان ایجاد کنید. پس از شروع معامله ، تمام اظهارات موجود در جلسه پوسته CBQ فرض می شود که بخشی از همان معامله است تا زمانی که شما به عقب برگردید یا معامله را انجام دهید. در این حالت ، نیازی به تنظیم پارامتر TXID ندارید.[1]
از طرف دیگر ، می توانید از پارامتر txiMplicit برای اجرای یک بیانیه به عنوان معامله استفاده کنید. در این حالت ، نیازی به مشخص کردن پارامتر TXID نیز ندارید.
می توانید با استفاده از دستور Set ، پارامترهای معامله Couchbase را مشخص کنید.
معاملات Couchbase با API REST QUERY
برای اجرای معامله حاوی چندین جمله ، می توانید یک بیانیه را به طور همزمان ایجاد کنید. پس از شروع معامله ، باید پارامتر TXID را تنظیم کنید تا معامله ای را که هر بیانیه بعدی به آن تعلق دارد مشخص کنید.
از طرف دیگر ، می توانید از پارامتر txiMplicit برای اجرای یک بیانیه به عنوان معامله استفاده کنید. در این حالت ، نیازی به مشخص کردن پارامتر TXID ندارید.
می توانید پارامترهای مربوط به معامله Couchbase را به عنوان پارامترهای بدنه یا پارامترهای پرس و جو در کنار بیانیه پرس و جو مشخص کنید.
نظارت بر
شما می توانید معاملات فعال Couchbase را با استفاده از سیستم: کاتالوگ معاملات کنترل کنید. برای اطلاعات بیشتر ، به سیستم: معاملات مراجعه کنید.
مجوزها
هنگام توسعه معامله با SDK ، معامله ممکن است حاوی ترکیبی از عملیات با ارزش کلیدی و بیانیه های پرس و جو باشد.
برای اجرای یک عملیات با ارزش کلیدی در یک معامله ، کاربران باید نقش های اداری یا داده های مربوط به RBAC و مجوزهای مربوط به سطل ها ، دامنه ها و مجموعه های مربوطه را داشته باشند.
به همین ترتیب ، برای اجرای یک بیانیه پرس و جو در یک معامله ، کاربران باید نقش های اداری یا پرس و جو و فهرست RBAC و مجوزهای مربوط به سطل ها ، اسکوپ ها و مجموعه های مربوطه را داشته باشند.
برای جزئیات بیشتر به نقش ها مراجعه کنید.
نمونه کار
این مثال کار شده شما را از طریق یک جلسه معامله Couchbase کامل با استفاده از N1QL راهنمایی می کند.
آماده سازی
مثال کار شده فرض می کند که سطل نمونه سفر عرضه شده نصب شده است. برای جزئیات نصب به سطل های نمونه مراجعه کنید.
برای اهداف این مثال کار شده ، باید یک شاخص اصلی را در فضای کلیدی که از آن استفاده خواهید کرد ، ایجاد کنید.
یک فهرست اصلی در `Travel-Sample`. tenant_agent_00. bookings ایجاد کنید ، تا بتوانید اسناد را در این کلکسیون جستجو کرده و به روز کنید.
در صورت لزوم ، پارامترهای معامله را برای این مثال کار کرده تنظیم کنید. به طور خاص ، شما دوام را برای اهداف این مثال خاموش خواهید کرد تا اطمینان حاصل کنید که هیچ مشکلی در برآورده کردن شرایط دوام معامله وجود ندارد.
برای نمایش پنجره Run-Time Preferences ، روی نماد COG کلیک کنید.
لیست کشویی سازگاری اسکن را باز کرده و not_bounded را انتخاب کنید.
در کادر زمان معامله ، 120 را وارد کنید.
در بخش پارامترهای نامگذاری شده ، روی دکمه + کلیک کنید تا یک پارامتر نامگذاری شده اضافه شود.
هنگامی که پارامتر جدید نامگذاری شده ظاهر می شود ، دوام را در کادر نام و "هیچ" (با دو برابر نقل قول) در کادر Value وارد کنید.
برای ذخیره تنظیمات برگزیده و بازگشت به میز کار پرس و جو ، ترجیحات ذخیره را انتخاب کنید.
پارامترهای زیر را وارد کنید.
| 1 | زمان معامله |
| 2 | قوام اسکن معامله. هیچ قوام اسکن برای اظهارات فردی در معامله تعیین نشده است. آنها از قوام اسکن معامله به ارث می برند. |
| 3 | سطح دوام کلیه جهش های موجود در معامله. |
معامله
کل دنباله را در زیر کپی کرده و آن را در Workbench Query یا پوسته CBQ قرار دهید. توجه داشته باشید که شما باید از CBQ Shell نسخه 2. 0 یا بالاتر استفاده کنید.
نتایج اجرای معامله در میز کار پرس و جو در زیر نشان داده شده است. اگر از پوسته CBQ استفاده می کنید ، نتایج متفاوت فرمت می شوند ، اما حاوی همان اطلاعات هستند.
آنالیز فاندامنتال...
ما را در سایت آنالیز فاندامنتال دنبال می کنید
برچسب :
نویسنده : اسماعیل داورفر
بازدید : <-PostHit->
تاريخ : سه
شنبه
1 فروردين
1402 ساعت: 19:34