✕ סגור 
צור קשר
תודה על ההתעניינות .

Thank you! Your submission has been received!

Oops! Something went wrong while submitting the form

מהו DocumentDB ב- Azure ?‎

שמואל כליפה
|
קשה
|
Oct 1, 2016
alt="facebook"alt="linkedin"להרשמה לניוזלטר

                      מהו DocumentDB ב- Azure ?

הכרות

בפורטל של ה- Azure ישנה האופציה להתקנת Azure DocumentDB . אם כך מהו בדיוק ה- DocumentDB ?

תמונה 1. Azure DocumentDB  בפורטל הAzure

מאמר זה יבהיר מהו  Azure DocumentDB , כמה זה עולה, איך לשלב את זה עם SQL Server, כיצד להרחיב את מסד הנתונים ומידע רלוונטי אחר.

מהו ה- DocumentDB  ?

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

DocumentDB, אינו משמש לאחסון מסמכים כמו WORD MS או מסמכי PDF. הוא משמש לאחסון מסמכי JSON.

מה זה מסמכי JSON   ?

JSON (Java Script Object Notation) הוא סימון אובייקט סטנדרטי, המשמש להעברת אובייקטי נתונים. זה מאוד פופולרי ב Web Services שם הוא מחליף את ה- XML. זה התחיל על Java Script, אבל עכשיו היא מהווה אמת מידה הנתמכת בשפות תכנות שונות.

 

האם זה קשה ללמוד JSON ?

 

לא ! , אם אתה מתכנת, זה יהיה פשוט ללמוד JSON, כיוון שרישום האובייקט קל מאוד. אם אתה DBA, זה עלול להיות קצת יותר קשה. ב- SQL Server 2016, תמיכת JSON כלולה, ולכן, זה נראה כמשהו שה- DBA צריך ללמוד בסופו של דבר. ב- SQL Server אם אתה מכיר XML, באמצעות JSON יהיה קל מאוד, כי המשפטים הם דומים.

 

דוגמא לקוד JSON

 

1

2

3

4

5

{"customers":[

{"firstName":"John", "lastName":"Smith", "email":"[email protected]"  },

{"firstName":"Peter", "lastName":"Jackson",  "email":"[email protected]" },

{"firstName":"Maria", "lastName":"Simpson",  "email":"[email protected]" }

]}

זה לא קשה .. ה- customer בדוגמא הוא האובייקט וה- fisrstname,lastname,email הם השמות עם ערכיהם. התחביר הוא קל לקריאה ומאוד גמיש. הנתונים מופרדים בפסיקים. סוגריים מסולסלים המכילים את האובייקטים וסוגריים מרובעים מכילים מערכים.

 

אם אתה עובד עם C # ו- Java, אתה יודע שזה לא כל כך קל לנתח אלמנטים מ- XML (לפחות לא בפעם הראשונה). ב JSON זה קל יותר. לכן XML גוססת JSON מחליף אותו (עם זאת, ב- SQL Server באמצעות JSON הוא לא יותר קל מאשר XML).

 

JSON נפוץ מאוד גם ב- Big Data  (Azure HDInsight למשל).

 

https://www.sqlshack.com/wp-content/uploads/2016/05/word-image-1q.jpg

תמונה 2. הלוגו של JSON

 

 

ש: בסדר, הכלמאוחסןבמסמכיJSON, אבלאיךאנייכוללבצעשאילתה מולנתוניDocumentDB?

 

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

 

ש: DocumentDBאינוקשורAzure SQL Server. באילותרחישיםכדאילילהשתמשב- Azure SQLובאילו תרחישים ב-  DocumentDB?

 

ת: DocumentDB משמש במיוחד ל- gaming , IOT , מדיה חברתית (Social media). אם יש לך יישום ואתה מעוניין להרחיב אותו לעולם ויש לך מיליוני משתמשים, DocumentDB ב- Azure הוא פתרון פשוט וזול. עם Sql Server ב- Azure יהיה קשה להתרחב לכמות כזו של משתמשים. באופן כללי, מסדי נתונים יחסיים מסורתיים לא יכולים להתרחב בהיקף קל כמו מסמכי JSON פשוטים. הבעיה האחרת היא הנתונים. יישומים מסוימים דורשים תמונות וסרטי וידאו. זה באמת קשה כדי לאחסן ולטפל סוגים אלה של נתונים במסד נתונים יחסיים כמו Azure SQL.

מסד נתונים SQL Azure הוא פתרון נהדר כאשר אתה לא צריך לשנות את קנה המידה ולהתמודד עם מיליוני משתמשים בו-זמנית וכמובן המודל הרלציוני הוא גם רעיון טוב.

 

נשמע מצוין. כמה זה עולה ?

ישנןשתידרכים :

חיוב מוגדר ע"י המשתמש (user defined billing) ו- מוגדר מראש  (Pre-Defined)

 

מוגדר מראש חיוב ביצועים שהיו תלוי אחסון הנתונים ויחידים הבקשה.

אוסף S1 עם 10 GB של אחסון ו -250 יחידות בקשה לשנייה עולה 25 $ לחודש וכן S3 עם אותו אחסון ו 2500 יחידות בקשה לשנייה עולה 100 $ לחודש.

 

חיוב מוגדר ע"י המשתמש מציע עלות של 0.25 $ לכל GB לחודש ולכל 100 יחידות בקשה שמורות 6 $ לחודש.

 

מהןיחידותהבקשה?

יחידת הבקשה היא התפוקה כדי לקבל מסמך KB 1.

מהו אוסף?

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

 

https://www.sqlshack.com/wp-content/uploads/2016/05/word-image-30q.png

 

תמונה 3. אוסף של מסמכי DocumentDB

 

איךאנייכוללהעבירמ- SQL Serverל- DocumentDB?

אתה יכול להשתמש בכלי להעברת נתוני DocumentDB. זהו קוד פתוח לייבא נתונים מ- SQL Server ומקורות אחרים כמו קבצי CSV, MongoDB, Azure Table Storage ומקורות אחרים.

כיצד  DocumentDB מתרחב (scale) ?

את האוספים (collections)  ניתן לאחסן במחיצות דיסקים מרובות. המידע מאוחסן בדיסקים מרובים. אם אתה צריך יותר דיסקים, מסד הנתונים גדל. קנה המידה הוא בלתי מוגבל. עבור עבור partitions הוא משתמש ב- partition key . המספר מציין את מספר ה- partitions שבשימוש.

איךאנייכוללשלוףאתהמידעמה- DocumentDB?

ל- DocumentDB יש את ה- REST API שמאפשר לו להיקרא על ידי כל שפה מסוגלת להתמודד עם בקשות HTTP ו- HTTPS. יש ספריות עבור Java, .NET, Python.

מסקנות

DocumentDB הוא מסד נתונים NoSQL חדש המוצע ב- Azure. זהו פתרון פשוט וזול בענן בשימוש במיוחד במשחקים מקוונים, יישומי IOT מדיה חברתית ויישום אחר עם מיליוני משתמשים. אפשר להעביר נתונים מ- SQL Server ל- DocumentDB.

המידע מאוחסן במסמכי JSON.

השימוש במאגרי מידע NoSQL גדל בגלל היקף הנתונים הנדרשים כדי לאחסן אותם.

i�����

                      מהו DocumentDB ב- Azure ?

הכרות

בפורטל של ה- Azure ישנה האופציה להתקנת Azure DocumentDB . אם כך מהו בדיוק ה- DocumentDB ?

תמונה 1. Azure DocumentDB  בפורטל הAzure

מאמר זה יבהיר מהו  Azure DocumentDB , כמה זה עולה, איך לשלב את זה עם SQL Server, כיצד להרחיב את מסד הנתונים ומידע רלוונטי אחר.

מהו ה- DocumentDB  ?

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

DocumentDB, אינו משמש לאחסון מסמכים כמו WORD MS או מסמכי PDF. הוא משמש לאחסון מסמכי JSON.

מה זה מסמכי JSON   ?

JSON (Java Script Object Notation) הוא סימון אובייקט סטנדרטי, המשמש להעברת אובייקטי נתונים. זה מאוד פופולרי ב Web Services שם הוא מחליף את ה- XML. זה התחיל על Java Script, אבל עכשיו היא מהווה אמת מידה הנתמכת בשפות תכנות שונות.

 

האם זה קשה ללמוד JSON ?

 

לא ! , אם אתה מתכנת, זה יהיה פשוט ללמוד JSON, כיוון שרישום האובייקט קל מאוד. אם אתה DBA, זה עלול להיות קצת יותר קשה. ב- SQL Server 2016, תמיכת JSON כלולה, ולכן, זה נראה כמשהו שה- DBA צריך ללמוד בסופו של דבר. ב- SQL Server אם אתה מכיר XML, באמצעות JSON יהיה קל מאוד, כי המשפטים הם דומים.

 

דוגמא לקוד JSON

 

1

2

3

4

5

{"customers":[

{"firstName":"John", "lastName":"Smith", "email":"[email protected]"  },

{"firstName":"Peter", "lastName":"Jackson",  "email":"[email protected]" },

{"firstName":"Maria", "lastName":"Simpson",  "email":"[email protected]" }

]}

זה לא קשה .. ה- customer בדוגמא הוא האובייקט וה- fisrstname,lastname,email הם השמות עם ערכיהם. התחביר הוא קל לקריאה ומאוד גמיש. הנתונים מופרדים בפסיקים. סוגריים מסולסלים המכילים את האובייקטים וסוגריים מרובעים מכילים מערכים.

 

אם אתה עובד עם C # ו- Java, אתה יודע שזה לא כל כך קל לנתח אלמנטים מ- XML (לפחות לא בפעם הראשונה). ב JSON זה קל יותר. לכן XML גוססת JSON מחליף אותו (עם זאת, ב- SQL Server באמצעות JSON הוא לא יותר קל מאשר XML).

 

JSON נפוץ מאוד גם ב- Big Data  (Azure HDInsight למשל).

 

https://www.sqlshack.com/wp-content/uploads/2016/05/word-image-1q.jpg

תמונה 2. הלוגו של JSON

 

 

ש: בסדר, הכלמאוחסןבמסמכיJSON, אבלאיךאנייכוללבצעשאילתה מולנתוניDocumentDB?

 

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

 

ש: DocumentDBאינוקשורAzure SQL Server. באילותרחישיםכדאילילהשתמשב- Azure SQLובאילו תרחישים ב-  DocumentDB?

 

ת: DocumentDB משמש במיוחד ל- gaming , IOT , מדיה חברתית (Social media). אם יש לך יישום ואתה מעוניין להרחיב אותו לעולם ויש לך מיליוני משתמשים, DocumentDB ב- Azure הוא פתרון פשוט וזול. עם Sql Server ב- Azure יהיה קשה להתרחב לכמות כזו של משתמשים. באופן כללי, מסדי נתונים יחסיים מסורתיים לא יכולים להתרחב בהיקף קל כמו מסמכי JSON פשוטים. הבעיה האחרת היא הנתונים. יישומים מסוימים דורשים תמונות וסרטי וידאו. זה באמת קשה כדי לאחסן ולטפל סוגים אלה של נתונים במסד נתונים יחסיים כמו Azure SQL.

מסד נתונים SQL Azure הוא פתרון נהדר כאשר אתה לא צריך לשנות את קנה המידה ולהתמודד עם מיליוני משתמשים בו-זמנית וכמובן המודל הרלציוני הוא גם רעיון טוב.

 

נשמע מצוין. כמה זה עולה ?

ישנןשתידרכים :

חיוב מוגדר ע"י המשתמש (user defined billing) ו- מוגדר מראש  (Pre-Defined)

 

מוגדר מראש חיוב ביצועים שהיו תלוי אחסון הנתונים ויחידים הבקשה.

אוסף S1 עם 10 GB של אחסון ו -250 יחידות בקשה לשנייה עולה 25 $ לחודש וכן S3 עם אותו אחסון ו 2500 יחידות בקשה לשנייה עולה 100 $ לחודש.

 

חיוב מוגדר ע"י המשתמש מציע עלות של 0.25 $ לכל GB לחודש ולכל 100 יחידות בקשה שמורות 6 $ לחודש.

 

מהןיחידותהבקשה?

יחידת הבקשה היא התפוקה כדי לקבל מסמך KB 1.

מהו אוסף?

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

 

https://www.sqlshack.com/wp-content/uploads/2016/05/word-image-30q.png

 

תמונה 3. אוסף של מסמכי DocumentDB

 

איךאנייכוללהעבירמ- SQL Serverל- DocumentDB?

אתה יכול להשתמש בכלי להעברת נתוני DocumentDB. זהו קוד פתוח לייבא נתונים מ- SQL Server ומקורות אחרים כמו קבצי CSV, MongoDB, Azure Table Storage ומקורות אחרים.

כיצד  DocumentDB מתרחב (scale) ?

את האוספים (collections)  ניתן לאחסן במחיצות דיסקים מרובות. המידע מאוחסן בדיסקים מרובים. אם אתה צריך יותר דיסקים, מסד הנתונים גדל. קנה המידה הוא בלתי מוגבל. עבור עבור partitions הוא משתמש ב- partition key . המספר מציין את מספר ה- partitions שבשימוש.

איךאנייכוללשלוףאתהמידעמה- DocumentDB?

ל- DocumentDB יש את ה- REST API שמאפשר לו להיקרא על ידי כל שפה מסוגלת להתמודד עם בקשות HTTP ו- HTTPS. יש ספריות עבור Java, .NET, Python.

מסקנות

DocumentDB הוא מסד נתונים NoSQL חדש המוצע ב- Azure. זהו פתרון פשוט וזול בענן בשימוש במיוחד במשחקים מקוונים, יישומי IOT מדיה חברתית ויישום אחר עם מיליוני משתמשים. אפשר להעביר נתונים מ- SQL Server ל- DocumentDB.

המידע מאוחסן במסמכי JSON.

השימוש במאגרי מידע NoSQL גדל בגלל היקף הנתונים הנדרשים כדי לאחסן אותם.

i�����

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
שמואל כליפה
בואו נעבוד ביחד
צרו קשר