سؤال

أنا أبحث في استخدام تخزين الجدول لتخزين بعض بيانات المعاملات ، ومع ذلك ، أحتاج إلى دعم بعض التقارير عالية المستوى عليها ، بشكل أساسي مجاميع يوميًا / شهرًا.

زوجان من الخيارات التي لدي على الرغم من:

  • استخدم بنية مفتاح التقسيم / الصف وأداء مجموع ديناميكي
    على سبيل المثال 201011101_itemid_xxxxxxx (x = guid أو الوقت ، لجعل فريدة من نوعها) ثم سأستفسر عن بيانات شهور باستخدام جزء من مفتاح الصف (itemID_201011) ، وإجمالي خاصية "التكلفة" في النوع.

    كيف سيتم إدارة حد الاستعلام البالغ 1000 سجل من قبل هذا؟ (أي إذا كان هناك أكثر من 1000 معاملة لهذا اليوم ، فإن الإجمالي سيكون صعبًا)

  • استخدم سجلًا آخر لتخزين المجموع لهذا اليوم ، وتحديث هذا عند إضافة سجلات جديدة
    EG ROW مفتاح "20101101_itemid_total" ثم الاستعلام عن هذا الإجمالي للأيام ، أو أشهر ، أو مجاميع سنوات.

ما هي أفضل طريقة للقيام بذلك؟ هل هناك "أفضل ممارسة" لهذا النوع من المتطلبات باستخدام تخزين الجدول؟

هل كانت مفيدة؟

المحلول

لست متأكدًا من أفضل الممارسات ولكن يمكنني التعليق على أن لدينا موقف مماثل Azurewatch وبالتأكيد تستخدم القيم المسبقة في الجداول.

في الغالب لأسباب تتعلق بالأداء-فإن تخزين الجدول ليس فوريًا حتى إذا قمت بالاستعلام عن طريق مفتاح قسم واحد ونطاق في مفتاح الصف. إن الوقت الذي يستغرقه تنزيل السجلات مهم إلى حد ما ، واعتمادًا على السجلات ، قد يؤدي إلى ارتفاع وحدة المعالجة المركزية ، لأنها تحتاج إلى إلغاء تخصيص البيانات في كائنات. إذا تمكنت من السفر إلى تخزين الجدول عدة مرات بسبب حد السجل 1000 ، فستدفع أكثر أيضًا.

بعض الأفكار الأخرى التي يجب مراعاتها:

هل ستتغير مجاميرك المجمعة؟ إذا كان لا ، فإن هذا هو دفع آخر نحو التجميع المسبق

هل ستحتاج إلى الاحتفاظ بالقيم المجمعة بعد اختفاء البيانات الأولية أم ستحتاج إلى تطهير البيانات الأولية؟ إذا كانت الإجابة بنعم ، فهذا دفع آخر نحو التجميع المسبق

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top