خطوات الاستخدام
الخطوة الأولى: تحديد معدل إدخال السجلات في الثانية (recordsPerSec). هذا هو عدد السجلات التي ترسلها إلى Kinesis في كل ثانية. يعتمد هذا الرقم على حجم التطبيق الخاص بك ومعدل توليد البيانات. كلما زاد هذا الرقم، زادت الحاجة إلى أجزاء (Shards) إضافية.
الخطوة الثانية: تحديد متوسط حجم السجل الواحد بالكيلوبايت (avgRecordSizeKB). حجم السجل يؤثر على إجمالي البيانات المرسلة في الثانية. على سبيل المثال، إذا كان حجم السجل 2 كيلوبايت، فإن كل 1000 سجل تساوي حوالي 2 ميجابايت.
الخطوة الثالثة: حساب إجمالي حجم البيانات في الثانية. استخدم الصيغة: إجمالي البيانات (بالميجابايت) = (recordsPerSec * avgRecordSizeKB) / 1024. هذا يعطيك كمية البيانات التي يحتاج الدفق إلى معالجتها كل ثانية.
الخطوة الرابعة: فهم الحدود القصوى للجزء الواحد (Shard). كل جزء يمكنه استيعاب ما يصل إلى 1 ميجابايت من البيانات في الثانية، أو ما يصل إلى 1000 سجل في الثانية (أيهما أقل). لذلك، تحتاج إلى حساب عدد الأجزاء اللازمة بناءً على كلا القيدين.
الخطوة الخامسة: حساب عدد الأجزاء المطلوبة. أولاً، احسب عدد الأجزاء اللازمة بناءً على حجم البيانات: shards_by_throughput = سقف(إجمالي البيانات / 1). ثانيًا، احسب عدد الأجزاء اللازمة بناءً على عدد السجلات: shards_by_records = سقف(recordsPerSec / 1000). بعد ذلك، اختر القيمة الأكبر بينهما: requiredShards = max(shards_by_throughput, shards_by_records). هذا يضمن أن الدفق يمكنه التعامل مع كلا القيدين.
أمثلة محلولة
تطبيقات عملية على أجزاء Kinesis بخطوات الحل كاملة.
الحل
لنحسب ذلك خطوة بخطوة:
1. إجمالي البيانات في الثانية: (5000 * 2) / 1024 = 10000 / 1024 ≈ 9.7656 ميجابايت.
2. الأجزاء اللازمة بناءً على حجم البيانات: سقف(9.7656 / 1) = سقف(9.7656) = 10 أجزاء.
3. الأجزاء اللازمة بناءً على عدد السجلات: سقف(5000 / 1000) = سقف(5) = 5 أجزاء.
4. اختر القيمة الأكبر: max(10, 5) = 10 أجزاء.
إذن، تحتاج إلى 10 أجزاء لضمان معالجة جميع البيانات دون تأخير. ملاحظة: إذا زادت البيانات عن حد 1 ميجابايت لكل جزء، قد تواجه تأخيرات أو فقدان للبيانات. هذا الحساب يفترض أنك تستخدم جزءًا واحدًا لكل ميجابايت، ولكن في الواقع، قد تحتاج أيضًا إلى مراعاة التوزيع المتساوي للسجلات عبر الأجزاء.
الحل
نقوم بالحسابات:
1. إجمالي البيانات: (20000 * 0.5) / 1024 = 10000 / 1024 ≈ 9.7656 ميجابايت.
2. الأجزاء حسب حجم البيانات: سقف(9.7656) = 10 أجزاء.
3. الأجزاء حسب عدد السجلات: سقف(20000 / 1000) = 20 جزء.
4. القيمة الأكبر: max(10, 20) = 20 جزء.
لاحظ أن عدد السجلات هو العامل المحدد هنا، على الرغم من أن حجم البيانات صغير. هذا يوضح أهمية كلا القيدين. إذا كنت تستخدم 10 أجزاء فقط، فسيتجاوز عدد السجلات الحد المسموح به لكل جزء (1000 سجل/ثانية)، مما يؤدي إلى رفض الطلبات (ProvisionedThroughputExceededException). لذلك، تحتاج إلى 20 جزءًا لاستيعاب المعدل.
أمثلة محسوبة
قيم مُدخَلة ونتيجة محسوبة فعليًا بواسطة أجزاء Kinesis.
مرجع — القيد بحجم البيانات
- السجلات في الثانية
- 5,000
- متوسط حجم السجل (كيلوبايت)
- 2
مرجع — القيد بعدد السجلات
- السجلات في الثانية
- 20,000
- متوسط حجم السجل (كيلوبايت)
- 0.5
مرجع — سجلات كبيرة نادرة
- السجلات في الثانية
- 100
- متوسط حجم السجل (كيلوبايت)
- 20