datetime - ما نوع البيانات الذي يجب استخدامه للطابع الزمني في DynamoDB؟




amazon-web-services amazon-dynamodb (2)

يجب استخدام نوع بيانات السلسلة للتاريخ أو الطابع الزمني.

يمكنك استخدام نوع بيانات String لتمثيل تاريخ أو طابع زمني. طريقة واحدة للقيام بذلك هي باستخدام سلاسل ISO 8601 ، كما هو موضح في هذه الأمثلة:

2016/02/15

2015-12-21T17: 42: 34Z

20150311T122706Z

DynamoDB نوع البيانات للتاريخ أو الطابع الزمني

نعم ، يتم دعم استعلامات النطاق عند تخزين التاريخ كسلسلة. يمكن استخدام BETWEEN على FilterExpresssion. لقد حصلت على العناصر في النتيجة باستخدام تعبيرات عامل التصفية أدناه.

FilterExpression دون وقت: -

FilterExpression : 'createdate between :val1 and :val2',
ExpressionAttributeValues : {
        ':hkey' : year_val,
        ':rkey' : title,
        ":val1" : "2010-01-01",
        ":val2" : "2010-12-31"
    }

FilterExpression مع الوقت: -

FilterExpression : 'createdate between :val1 and :val2',
    ExpressionAttributeValues : {
        ':hkey' : year_val,
        ':rkey' : title,
        ":val1" : "2010-01-01T00:00:00",
        ":val2" : "2010-12-31T00:00:00"
    }

قيم قاعدة البيانات: -

التنسيق 1 - مع المنطقة الزمنية:

{"Item":{"createdate":{"S":"2010-12-21T17:42:34+00:00"},"title":{"S":"The Big New Movie 2010"},"yearkey":{"N":"2010"},"info":{"M":{"rating":{"N":"0"},"plot":{"S":"Nothing happens at all."}}}}}

التنسيق 2 - بدون منطقة زمنية: -

{"Item":{"createdate":{"S":"2010-12-21T17:42:34Z"},"title":{"S":"The Big New Movie 2010"},"yearkey":{"N":"2010"},"info":{"M":{"rating":{"N":"0"},"plot":{"S":"Nothing happens at all."}}}}}

أنا جديد على DynamoDB. أرغب في إنشاء جدول يستخدم DeviceID كمفتاح التجزئة ، والطابع الزمني كمفتاح النطاق الخاص بي وبعض البيانات.

{ DeviceID: 123, Timestamp: "2016-11-11T17:21:07.5272333Z", X: 12, Y: 35 }

في SQL ، يمكننا استخدام نوع وقت التاريخ لـ Timestamp ، لكن في DynamoDB لا يوجد شيء.

  1. ما نوع البيانات التي يجب استخدامها؟ خيط؟ رقم؟

  2. بالنسبة لنوع البيانات المختار ، ما نوع تنسيق الطابع الزمني الذي يجب أن أكتب فيه؟ تنسيق ISO (مثل: 2016-11-11T17: 21: 07.5272333Z) أو وقت العصر (على سبيل المثال: 1478943038816)؟

  3. أحتاج إلى البحث من خلال الجدول خلال مجموعة من الوقت ، على سبيل المثال: 1/1/2015 10:00:00 ص حتى 31/12/2016 11:00:00 م


يعتمد نوع البيانات على الاحتياجات الخاصة بك.

يمكنك استخدام String باستخدام تنسيق ISO أو الرقم باستخدام تنسيق epoch.

ميزة تنسيق ISO (سلسلة) هي قابلية القراءة البشرية ، لكن DynamoDB لا يدعم Time To Live (TTL) لهذا التنسيق. تعمل جميع المرشحات مثل "بين" و "مجموعة" كما هو موضح بواسطة notionquest.

يتيح لك Time To Live (TTL) لـ DynamoDB تحديد وقت انتهاء صلاحية العناصر في الجدول بحيث يمكن حذفها تلقائيًا من قاعدة البيانات.

تتمثل ميزة استخدام تنسيق epoch (رقم) في أنه يمكنك استخدام ميزة TTL وجميع المرشحات.

TLDR.

تنسيق الحقبة (نوع العدد) - يمكن استخدام Time To Live
تنسيق ISO (نوع السلسلة) - لا يمكن استخدام Time To Live ولكن يمكن قراءته بشكل أكبر







sqldatatypes