מסדי נתונים ללא שרת: דיבה עמוקה ל-DymoDB ו-קוסמוס DB

העלייה של מחשוב ללא השרת שינתה באופן יסודי את האופן שבו ארגונים בונים ופרוסים יישומים.על ידי ניהול השרתים, מפתחים יכולים להתמקד בקידוד ואספקת תכונות במקום מתן חומרה.בין הרכיבים הקריטיים ביותר בפרדיגמה זו הם מסדי נתונים חסרי שרת, המציעים על-ידי דרישה, תמחור תשלום-שימושי, וזמינות גבוהה ללא פני השטח תפעולי.2 ספקי ענן מובילים מציעים פתרונות מסד נתונים רב עוצמה: Amazonmo DynamicsmoRM (AWS) ו-cookies) הם חוקרים את כל אחד מהם, אך הם מדדי אבטחה, אך ורק את התקני אבטחה ומודלים מאובטחים, אך ורק ב-cookies (DPTSD, אך אינם כוללים את התקני מסחר, אך ורק ב-cookies) ו-cookies (D.

מה הם מסדי נתונים ללא שרת?

מסדי נתונים Serverless הם שירותי מסד נתונים אשר מטפלים באופן אוטומטי במשימות תשתית כגון מתן, קנה מידה, תיקון וגיבויים.המונח "חסר מנוחה" אינו אומר כי השרתים אינם קיימים; אלא ספק הענן מנהל אותם לחלוטין, חושף רק נקודת קצה מסד נתונים ליישום.משאבים עולים ולמטה באופן אוטומטי על בסיס דרישה, וחיוב מבוסס על צריכת, משלמים באופן זמני עבור מספר השימוש / טקסט פעולות.

מודל זה מועיל במיוחד עבור יישומים עם תנועה משתנה או בלתי צפויה, כגון מכירות הבזק מסחר אלקטרוני, צמת חיישן IoT, שירותי גיבוי ניידים, וארכיטקטורה מונחה אירועים. מסדי נתונים ללא אירועים לחסל את תכנון היכולת, להפחית עלויות, ולפשט את הפיתוח על ידי מתן ממשקי API עצלנים ואופטימיזציה מובנה.עם זאת, הם גם להציג עסקאות: עלויות יכול להיות קשה לנבא על ידי ביצועים גבוהים מאוד, או חוסר שליטה מסוימת.

Amazon DynamoDB - A Pillars of AWS Serverless

אמזון דינמוDB היא מסד נתונים מבוסס NoSQL מפתח ומסד נתונים המספק חד-ספרתי חד-ספרתי בכל קנה מידה. הושק בשנת 2012, היא הפכה למסד הנתונים ברירת מחדל עבור יישומים רבים של AWSless Server, עובד בצורה חלקה עם Lambda, API Gateway, Step Functions, ו-Kinesis.D.D. תומך בסופו של דבר עקבי ועקבי קריאה, ומציעה טבלאות גלובליות, אוטומטי-DNS, על יכולת שינוי משנית (Dymptures), , , , , קידוד-DICC) ו-D.

תכונות מפתח של DynamoDB

  • (FLT:0) מודלים נתונים סלקטיביים: FLT:1rea תומך ערכי מפתח (מפתח ראשי פשוט) ומסמך (המפתח העיקרי עם מפתח מסוג זה) schemas יכול להיות תכונות שונות, מה שהופך אותו קל להתפתח ללא הגירה של סכימה.
  • (FLT:0) דרוג מתודולוגי: FLT:1 באפשרותך לבחור בין צו דרך (עם הסלמה אוטומטית) או על-ידי דרישה.על-פי דרישה מתאמת אוטומטית לספיציפי תנועה אך חיובים לפי בקשה; הוראה היא יעילה יותר עבור עומסי עבודה יציבים, צפויים.
  • [ה]הטבלה:0 Global Tables:FLT:1 [הרחבה], ריבוי מנהיגים עם עקביות סופית. אידיאלי לשיקום אסון ולקריאת נטיות נמוכה ברחבי העולם.
  • (ד) [15] ,0) ,9.נ.מ.ד.די.די.די.ד.ד.ק.ד.ד.ד.ד.ד.ד.ד.ד.ד.ד.ד.ד.: 1:1 An in-memory cache that canצמצום לקרוא latency from one-דיגיטלs to microIIs.
  • (FLT:0) סודיות: מוצפן 1:1 (AWS KMS) ובמעבר (TLS), מדיניות IAM מוטבעת היטב, נקודות קצה VPC, ושילוב עם AWS CloudTrail עבור יומני ביקורת.
  • (FLT:0)Streams ו Triggers:Builds:OVAFLT:1 ,DudmoDB Streams ללכוד שינויים ברמת הפריט בזמן כמעט-מציאותי, המאפשר אדריכלות מונחת אירועים (למשל, לשכפל לאיסטסטין מחקר, לעדכן אינדקסים משניים, הפעלות Lambda).
  • (FLT:0) Transactions:FLT:1 , ACID עסקאות על פני 25 פריטים או 4 MB של נתונים, שימושי עבור יישומים פיננסיים ופעולות מרובות-item.

מודל

תמחור דינמי מבוסס על מצב קיבולת.FLT:0 קיבולת מספקת 1FLT דורש ממך לציין ולכתוב יחידות יכולת קריאה (RCUs/WCUs) אתה משלם שיעור שעה ליחידה, בתוספת עלויות אחסון (0.25 GB/חודש) עבור אחסון נתונים זולים יותר עבור אספקת תשלום עבור טבלאות (R.comi) עבור תשלום עבור תשלום עבור תשלום עבור תשלום עבור תשלום עבור תשלום עבור $ 25 מיליון דולר (R.

שימוש במקרים נפוצים

  • (ב) ,0) ,Session state: (FLT:1) קורא/כתובות נמוכות הופכות אותו מצוין לאחסון הפעלות משתמשים באפליקציות אינטרנטיות וניידות.
  • (ב) ⁇ :0) ,Gaming:FLT:1 פרופילי שחקן, ראשיות, ומדינת משחק עם עומס גבוה וצפוי.
  • (ב) ,0) IoT: ההרחבה 1 (Igestion of חיישן Data) עם דרוג אוטומטי כדי לטפל במיליוני כותבים בשנייה.
  • (ב) ,0) מסחר אלקטרוני: עגלת קניות 1:1 ועיבוד הזמנות באמצעות עסקאות כדי להבטיח עקביות.
  • (FLT:0) , אפילו-מניעה של מיקרו-שירותים:FIRLT:1 בשילוב עם Lambda ו EventBridge, DynamoDB הוא עמוד השדרה של הרבה גבות ללא שרת.

הגבלות ושיקולים

בעוד חזק, דינמודיון הוא לא אחד בגודל של פתרון כל.יכולות השאילתה שלו מוגבלות: אתה יכול רק שאילתה על ידי מפתח ראשי (או GSI) ותנאי טווח אופציונליים.מורכב, חיפוש טקסט מלא דורש קבוצות חיצוניות כגון אלסטיאלק או אורורה.הגודל פריט מקסימלי של 400 KB יכול להיות מגביל עבור מסמכים גדולים. טבלאות גלובליות בסופו של דבר (חוסר עקביות) אזורי למידה גמישים יכולים להיות מסוגלות על פני שטח רחב (למשל, כולל של מערכת מידע גמישה).

(ב) ,0) אמזון דינמוב (AmanadenmoDB)

Azure Cosmos DB - Globally Distributed, Multi-Model Database

Microsoft Azure Cosmos DB הוא מסד נתונים מנוהל לחלוטין של NoSQL המיועד ליישומים קריטיים למשימה הדורשים הפצה גלובלית, דחיסות גמישה, ומודלים עקביים מרובים.בניגוד ל-DMODB, קוסמוס DB הוא מודל רב-מודל מתוך הקופסה: הוא תומך במסמך (SQL API), ערך מפתח (ממשק API אפשרי), גרף (ממשק API), עמודה (Cassandra), ו- API של MongoDB מאפשר שימוש חוזר למפתחים גלובליים, בעוד DB, בעוד שהופך החידושים המובילים ל-DLA החידושים, בעוד שבסיסם של החידושים, החידושים, החידושים של החידושים, החידושים, החידושים של החידושים של החידושים, החידושים של החידושים, החידושים של החידושים של החידושים של החידושים, , החידושים של החידושים של החידושים של DB, , החידושים, , החידושים של , , החידושים של , , החידושים של DB, החידושים של ממשק API), החידושים של ממשק API), החידושים של DB, החידושים של החידושים של ממשק API), החידושים של החידושים של החידושים של החידושים של החידושים של החידושים של DB, החידושים

תכונות עיקריות של Cosmos DB

  • (FLT:0) Multi-מודל ורב-API:BuildFLT 1 באפשרותך לבחור בין NoSQL (דופאמנט), MongoDB, Cassandra, Gremlin (graph), ו- Table APIs.כל ה APIים יושבים באותו הליבה - מנוע ה-DB של הקוסמוס - כך הם חולקים באמצעות חישוב, אינדקס, ותפוצה גלובלית.
  • (FLT:0) הפצה גלובלית (הופנהkey): 1FLT:1 עם כמה קליקים או שורות קוד, אתה יכול לשכפל נתונים לכל מספר של אזורי Azure.קוסמוס DB תומך ב- Multiregion כותב (אקטיבי-אקטיבי) עם פתרון סכסוכים אוטומטי.
  • (FLT:0) 5 רמות עקביות מוגדרות היטב:FreaLT:1 חזק, staleness, מושב, תיקון עקבי, ו Eventual.You יכול לבחור את הרמה לפי בקשה, איזון ביצועים נגד ערבויות עקביות.
  • (FLT:0)Automatic Indexing:FLT:1cio כברירת מחדל, כל התכונות של הפריט הם אינדקס ללא הגדרה ידנית של סכימה.זה מאיץ שאילתות שרירותיות, אבל אתה יכול להתאים אישית את המדיניות של אינדקס כדי להפחית את צריכת האמת.
  • (FLT:0) יחידות חקירה (RUs): רצף 1:1 קוסמוס DB משתמש מטבע חד-פעמי שנמדד בבקשות יחידות לשנייה. 1 RU תואמת ל- 1 KB קורא. Reads הם מהירים יותר (1RU ל- Read) מאשר כותב (5 RU ל- 1 KB לכתוב).
  • <חזק>SLA מבטיח: 99.999% זמינות לקריאה, 99.999% כותב עבור ריבוי רגולציה, ו <10 מ's latency לקריאה וכותב ב- P99 (עם אותו אזור) עקביות חזקה יש מעט יותר עקביות.
  • (FLT:0) שינוי האכלה:ראהFLT:1) יומן מתמשך, הורה על שינויים פריט שניתן לצרוך על ידי Azure Functions או מעבדים אחרים עבור ארכיטקטורות מונחות אירועים.
  • חנות הטורפתים:0 (Analytical Store: FLT:1 Built-inטורar for run Large-scale analytics ללא השפעה על עומסי עבודה (באמצעות Synapse Link).

מודל

תמחור קוסמוס מבוסס על דרך ערכת (RUs) ו אחסון נצרך.You יכול גם להשתמש (FLT:0serverlessearFLT:1 מצב (הקדמה בזמן הכתיבה) שבו אתה משלם עבור RUs ו אחסון נצרך, קנה כדי אפס כאשר idle - אידיאלי עבור עומסי עבודה קטנים.

בהשוואה ל-DymoDB, הדוגמנות של RU של קוסמוס הוא יותר גרניט ויכול להיות מורכב יותר להעריך, במיוחד עבור ריבוי מודלים עבודה.עם זאת, מדדים אוטומטיים ונפיחות טוטלי יכול להפחית את אמיתות הכוללות הדרושות, במיוחד עבור יישומים לקריאה-כבדים שיכולים לסבול עקביות בסופו של דבר.

שימוש במקרים נפוצים

  • (FLT:0) יישומים SaaS: FLT:1 למערכות מרובות-נטנטנסיות הדורשות גישה לעוצמה נמוכה ו-SLAs חזקים.
  • (FLT:0) IoT ו-Timeseries:FLT:1 Ingesting נתונים של חיישן עתיר עם השקפות גלובליות.
  • (FLT:0) פלטפורמות מסחר אלקטרוני: FLT:1 קטלוג מוצרים, עגלות קניות, ניהול סדר, עם פריסות פעילות רב-אזוריות.
  • (FLT:0) ניתוח בזמן אמת: 1FLT 1 באמצעות שינוי להאכיל וסיינטפס קישור כדי להניע לוחות נתונים ומודלים ללמידה מכונה.
  • (ב) ,0) יישומים: FLT:1 רשתות חברתיות, מנועי המלצה וגרפים ידע באמצעות ממשקי דעת גרמלין.

הגבלות ושיקולים

רוחבו של קוסמוס DB מגיע עם עקומת למידה.מודל האמת דורש תכנון זהיר: אתה משלם על יכולת מוקצה גם כאשר idle (אלא אם משתמשים ללא שרת) עושה שאילתות שרירותיות מסתמכות לעתים קרובות על המדד האוטומטי, אבל אינדקסים מעוצבים גרועה יכולים להתפוצץ עלות RU. שאילתות של RU-D-partition פחות יעילות כי הם נוגעים בכל מחיצה.

(ב) ,0ür (הידוע ב-DB)

השוואה בין ראש ל-Head: DynamoDB לעומת קוסמוס DBB

בחירת שני מסדי נתונים חסרי השרתים האלה תלויה בספק הענן הקיים שלך, מאפייני עומס עבודה, דרישות תכונה ספציפיות. להלן הוא השוואה מובנה על פני ממדים מרכזיים.

מודל נתונים ו- API

(FLT:0)ynamoveFLT:1 הוא בעיקר ערך מפתח ותעודה.זה משתמש API קנייני (AWS SDK) יחד עם PartiQL (שפת השאילתה השגויה של SQL) הוא בעיקר ערך מרכזי ותעודה.2Cosmos DBFreaLT:3 מציע חמישה API: SQL (document), MongoDB, Cassandra, Grelin (graph) ו-Creph מספקת יתרון עבור צוותים קיימים עבור שאילתות ללא שימוש ב-D.

הפצה גלובלית

שניהם תומכים בשכפול רב-region. DynamoDB משתמשת בטבלה גלובלית עם עקביות סופית (או חזקה רק בתוך אזור אחד) קוסמוס DB מספק ריבוי-region כותב עם רמות עקביות מרובות, כולל חזק באזורים (למרות עם עלות לב). קוסמוס ניהול ההפצה העולמית של DB הוא פשוט יותר מן הפורטל.

מודלים עקביים

דינמו-די.די. מציעה שניים: בסופו של דבר, קוסמוס DB מציע חמישה: בסופו של דבר, תיקון עקבי, ישיבה, staleness כבול, חזק.הגרנריות הקנסירה מאפשרת לקוסמוס DB לייעל את העלות וביצועים עבור מקרים ספציפיים לשימוש (למשל, עקביות ברמת הישיבות עבור סלי מסחר אלקטרוני היא מאוד פופולרית).

המונחים: cting

דינמו-די.די.אן.די. דורש מכם להגדיר מפתח ראשוני ומפתח מסוג אופציונלי; הוא מנטר באופן אוטומטי את המפתחות העיקריים ו- GSIs.You יכול גם ליצור אינדקסים מלוחים. Ad-hoc שאילתה מוגבלת.קוסמוס DB מאינדקס באופן אוטומטי את כל התכונות כברירת מחדל, ומאפשר שאילתות שרירותיות ללא הגדרה של schemafront.זה הופך את ה-DB גמיש יותר עבור שאילתות, אך יכול להגדיל את העלות עבור עבודה גבוהה.

באמצעות מחיר וגרנריות

דינמודי משתמשת ב-RCU/WCU - קורא חצי מהעלות של כותב (1RCU ל-4 KB, 1 WCU עבור 1 KB) קוסמוס DB משתמש RUs - 1 RU=1 KB קורא, 5 RU ל- 1 KB לכתוב. RUs DB RUloads RUS משתנה על ידי פשטות ותכונות אינדקס.

שילוב Ecosystem

דינמודי משולב עמוק עם AWS (Lambda, API Gateway, Kinesis, CloudWatch, CloudTrail, IAM) קוסמוס DB משתלב באופן טבעי עם Azure (Functions, Logic Apps, Event Hubs, Synapse, BI Power) שניהם מציעים שינויים הזנת וטריגרים מונעי אירועים.הבחירה לעתים קרובות מגיעה למי שמשקיע הארגון שלך.

SLAS ו- Limitations

קוסמוס DB מציע SLAs מקיפה עבור latency (P99 <10 ms קורא / טקסים תחת 1 KB), באמצעותput (זמינות גבוהה), ועקביות (לחזקה) דינמודי מפרסם חד-ספרתית חד-ספרתית חד-ספרית ו 99.999% זמינות עבור טבלאות גלובליות, אך אין מציעות רשמית SLA. קוסמוס DB יש גם אחסון מקסימלי לכל מיכל של 20 טרה (DB) עם גודל מוגבל של 0.

מתי לבחור מה?

  • (FLT:0)Choose DynamoDB אם:FLT:1 אתה בונה על AWS, צריך ערך מפתח פשוט או חנות מסמכים עם שקיפות נמוכה צפויה, יש דפוס גישה ברור (בעיקר על ידי מפתח ראשוני), ורוצה לשמור על עלויות נמוכות בקנה מידה גבוה.זה אידיאלי עבור משחקים, IoT, חנויות ישיבות, לשרת אחורי ללא מטרות רווח.
  • (FLT:0)Choose Cosmos DB אם:FreaLT:1 ; אתה צריך תמיכה במודל רב (במיוחד MongoDB או Cassandra API עבור הגירה), דורש רמות עקביות מרובות, צריך רב-פעולה פעיל כותב, או צריך יכולות שאילתה עשיר ללא עיצוב אינדקס upfront.זה מתאים היטב עבור יישומים ארגוניים גלובליים, ניתוח בזמן אמת, ואדריכלות פולי-גלטי.

(ב) ,0) ,917:2Cosmos DBמבואFLT 3:

Best Practices for Serverless Database Adoption

ללא קשר למסד הנתונים שתבחר, לאחר דפוסים מוכחים יעזרו לך להימנע ממכשולים משותפים:

עיצוב חלוקת

בשני דינמודי וקוסמוס DB, עיצוב מפתח מחיצות הוא קריטי.ח.מ.מ.מ.מ.מ.מ.מ.מ.מ.מ.מ.מ. . חם מחיצות (שם מפתח יחיד מקבל תנועה לא פרופורציונלית) תרווט באמצעות חישוב.coms DB, אתה יכול לחלק על נתיב / חלק; ב-Dymo, הוא בחרהטבלה מפתח.

החלפת נתונים

שני ה-DB Change Feed של DB Change מאפשר דפוסים מונעים אירועים. השתמש בהם כדי לשכפל נתונים למנועי חיפוש (Elasticsearch), לבנות נופים ממוחזרים, לסנכרון עם מחסני נתונים, או להפעיל את התהליכים במורד הזרם.זה מקטין את העומס על מסד הנתונים הראשוני ושירותי decouples.

להבין את הצרכים הקונספיסטים שלך

מסדי נתונים ללא שרת אחראים פחות על עקביות סופית.מוכיחים אם היישום שלך דורש עקביות חזקה.אם בסופו של דבר מקובל, אתה יכול להפחית עלויות ולשפר את השקיפות. עבור קוסמוס DB, להשתמש בעקביות של ישיבה עבור מסחר אלקטרוני רבים או יישומים מדיה חברתית - זה מספק קריאה-הטקס שלך מבטיח ישיבה בעלות נמוכה יותר מאשר חזק.

שימוש במצב הקיבולת ה-Appropriate

עבור דינמודי, בחר יכולת מספקת עם caling אוטומטי עבור עומסי עבודה יציבים ועל דרישה עבור ספייקטים בלתי צפויים. עבור קוסמוס DB, המסופק באמצעות ערכת דרך עם autoscale הוא טוב עבור רוב עומסי הייצור; לשקול ללא שרת (preview) עבור יישומים אדו / עדות או קל משקל. Monitor , Monitor צרכו אמיתות ולהגדיר התראות לאירועים throttle.

תוכנית להחזרת גיבוי ואסון

שני השירותים מציעים התאוששות נקודה בזמן (PITR) ניתן יהיה על כל מסדי הנתונים של ההפקה.דנמוDB גיבוי הוא רציף ומשחזר לשולחן חדש; גיבוי קוסמוס DB יכול להיות רציף או תקופתי.מבחן לשחזר מעת לעת. עבור DR גלובלי, להגדיר שכפול רב-אזורי (טבלאות גלובליות או קוסמוס DB multiregion כותב) ויש תוכנית כושלת.

ניהול עלויות

מעקב אחר שימוש בכלים לניהול עלות ענן (AWS Cost Explorer, Azure Cost Management) עבור DynamoDB, השתמש ביכולת שמורה עבור ערכות חיזוי דרך. עבור קוסמוס DB, לשקול שימוש ללא שרת או רכב כדי להימנע תשלום עבור אמיתות idle. Remove אינדקסים וטבלאות ללא שימוש. השתמש בדחיסה שבה נתמך (למשל, המאפשר דחיסה בחנות האנליטית של קוסמוס DB).

מסקנה

מסדי נתונים ללא שרת כמו Amazon DynamoDB ו- Azure Cosmos DB התבגרו לפלטפורמות של רשתות ארגוניות המעצימות מפתחים לבנות יישומים מדרגים עולמיים ללא נטל תפעולי.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.D.DB.D.D.D.D.D.DB.DB.D.D.D.D.D.D.D.D.D.DB.D.D.D.D.D.D. פשטו-B. .D.DB.D.D. .D.D.D.DB.D.DB.DB.DB.DB. , ו-B.DB.B.B. פשטו-.B.B.B.I.I.I.I.I

(ב) [15] ,9) ,(ב) ,(ב) ,(ב) ,(ב) ,ב) ,[דרוש מקור]