لوگوی سایت
پشتیبانی
لود داده

یکتاسازی و مدیریت Late Data

در این صفحه با مکانیسم‌های یکتاسازی داده (Idempotency) و مدیریت داده‌های دیررس (Late Data Management) در داده‌لند آشنا می‌شوید.

داده‌لند برای رفع دو چالش ارسال مجدد داده‌های تکراری و دریافت داده‌ها با تاخیر زمانی، دو مکانیسم یکتاسازی (Idempotency) و مدیریت داده‌های دیررس (Late Data) را به کار می‌گیرد.


یکتاسازی (Idempotency)

این مکانیسم از ایجاد ردیف‌های تکراری در ارسال دوباره رکوردها جلوگیری می‌کند و در جداول با درج با ورژن فعال است:

  • جداول وقایع، وصف و استیجینگ: بر مبنای ترکیب دو ستون dl_id و update_time عمل می‌کند؛ در صورت یکسانی هر دو مقدار، ردیف قبلی بازنویسی می‌شود و با تغییر update_time ردیف جدیدی درج می‌گردد.
  • جدول آزاد (Plain): به دلیل نبود ستون update_time، یکتاسازی صرفاً با ستون dl_id انجام می‌شود و رکوردهای با شناسه تکراری بازنویسی می‌گردند.
در سامانه‌های مبدأ با جداول Upsert (فاقد تاریخچه)، با قرار دادن کلید اصلی (یا هش کلیدهای ترکیبی) در ستون dl_id و ارسال هر تغییر با مقدار جدید ستون update_time، تاریخچه کامل تغییرات در داده‌لند ثبت می‌گردد.

مدیریت داده‌های دیررس

در سیستم‌های توزیع‌شده ممکن است داده‌ها به دلیل تاخیر شبکه با ترتیب زمانی نادرست دریافت شوند (نظیر ثبت وضعیت «تحویل» پیش از «پرداخت» یک سفارش). برای جلوگیری از بازنویسی داده‌های جدید با داده‌های قدیمی، در جداول با درج با آپدیت (شامل وقایع، وصف و استیجینگ)، تصمیم‌گیری بر مبنای کلید اصلی (Primary Key) و ستون update_time انجام می‌پذیرد:

  • چنانچه update_time رکورد ورودی بزرگ‌تر یا مساوی با مقدار موجود در جدول باشد، عملیات آپدیت انجام می‌پذیرد.
  • در صورت قدیمی‌تر بودن زمان رکورد ورودی، داده ارسالی منسوخ تلقی شده و حذف (Drop) می‌گردد.
صحت عملکرد این مکانیسم به ارسال دقیق زمان در ستون update_time توسط سامانه مبدأ وابسته است.

خلاصه مکانیسم‌ها

رفتار سیستم در مواجهه با داده‌های تکراری و دیررس به شرح زیر است:

مکانیسمنوع درجستون‌های مبنارفتار سیستم
یکتاسازیدرج با ورژن (وقایع، وصف، استیجینگ)dl_id و update_timeدر صورت یکسانی هر دو مقدار، ردیف بازنویسی می‌شود و با تغییر update_time ردیف جدید درج می‌گردد.
یکتاسازیدرج با ورژن (جدول آزاد)dl_idدر صورت تکراری بودن شناسه، ردیف قبلی بازنویسی می‌شود.
مدیریت داده‌های دیررسدرج با آپدیت (وقایع، وصف، استیجینگ)کلید اصلی و update_timeبا بزرگ‌تر یا مساوی بودن زمان رکورد، عملیات آپدیت انجام می‌گیرد و رکوردهای قدیمی‌تر Drop می‌شوند.