ארנגו די בי: השגת הצלחה עם מסד נתונים מרובה ערכים

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

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

  • מפתח-ערך: דומה לMap של Java או למילון של Python, מבנה זה שולף ערכים שלמים כ-BLOBs באמצעות מפתח.
  • עמודות רחבות: דומה למפתח-ערך אך מחלק את הערכים לעמודות, מה שמציע שליפה מדויקת יותר של נתונים.
  • מסמך: מאורגן כמו JSON או XML, סוג זה מספק גמישות רבה יותר בשאילתות.
  • גרף: מאפשר מודל ושאילתות של קשרים מורכבים על ידי ייצוג ישויות והקשרים ביניהן.

בסיס נתונים מרובה מודלים משלב את היכולות הללו במערכת אחת. לדוגמה, ArangoDB תומך במודלים של מפתח-ערך, מסמך וגרף, ומבטל את הצורך בבסיסי נתונים נפרדים.

מאמר זה מדגים כיצד להשתמש ב-ArangoDB כדי לחקור מודלים של מפתח-ערך ומסמך ביישומי Java באמצעות Jakarta NoSQL.

התקנת ArangoDB

כדי להתחיל עם ArangoDB, Docker מספק דרך ישירה לניהול שירותים מתוך צד שלישי. על ידי הרצת הפקודה הבאה, תוכל להגדיר מופע של ArangoDB בקלות:

Shell

 

חקירה בנתוני מפתח-ערך

בסיסי נתונים מפתח-ערך אידיאליים למודלים נתונים פשוטים. בואו ניצור אפליקציה דוגמה לניהול נתוני שדה תעופה באמצעות יכולויות המפתח-ערך של ArangoDB. הישות Airport תכיל שני שדות: code (זיהוי) ו־name.

Java

 

עם הישות שמוגדרת, תוכל להשתמש ב־KeyValueTemplate כדי לפעול עם מסד הנתונים. במדריך זה, נחקור יותר על יכולת ה־Jakarta NoSQL מעבר להערות בשימוש ב־Eclipse JNoSQL; תוכל ליצור את המאגר ברגע ש־Eclipse JNoSQL מיישם ותומך ב־Jakarta Data.

Java

 

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

http://localhost:8529/_db/airport/_admin/aardvark/index.html#collections

עבודה עם נתוני מסמך

ג'קרטה NoSQL מספק תכונות עשירות לעבודה עם מסדי נתונים מסמכים, כולל תמיכה בירושה ובדגם נתונים היררכי. בעוד מסדי נתונים NoSQL לרוב לא תומכים באופן בתורתי בתכונות אלה, ג'קרטה NoSQL גשרת על הפער עם ה- API שלה. בואו נשתמש ב-Jakarta NoSQL עם ArangoDB כדי לנהל נתוני ספקי שירותי הענן, כולל שתי התמחויות: Amazon Web Services (AWS) ו-Azure.

ג'קרטה NoSQL משתמשת באונוטציות @DiscriminatorColumn , @DiscriminatorValue ו- @Inheritance כדי לנהל ירושה במסדי נתונים מסמכים.

  • האונוטציה @DiscriminatorColumn מציינת את השדה שמשמש לזיהוי של סוג ישות במסמך במסד הנתונים.
  • האונוטציה @DiscriminatorValue מגדירה את הערך הספציפי עבור כל מחלקה משנית, מבטיחה שהן יוזהרו באופן נכון.
  • האונוטציה @Inheritance מציינת כי ההיררכיה של המחלקות תתווגג למסד הנתונים.

ראשית, נגדיר את המחלקה הבסיסית עבור ספקי הענן:

Java

 

לאחר מכן, אנו מציגים את המחלקות המתמחות בספקי שירותי הענן. הדוגמאות הללו מדגימות כיצד ג'קרטה NoSQL משתמשת באונטציות @DiscriminatorValue כדי להבחין בין סוגי מסמכים שונים. כל התמחות – AWS ו-Azure – מירשות מהמחלקה הבסיסית CloudProvider , ומגדירות גם תכונות ייחודיות לכל ספק. בנוסף, מסופקות שיטות יצרניות ( of ) ליצירת נתוני דוגמה לצורך הדגמה.

AWSCloudProvider

Java

 

AzureCloudProvider

Java

 

לבסוף, נראה כיצד להשתמש ב־DocumentTemplate כדי להתקשר עם מסד הנתונים. קטע הקוד הזה מדגים איך ליצור מופעים של ספקי AWS ו־Azure, להכניס אותם למסד הנתונים ולאחזר אותם. המימוש משתמש ב־API של Jakarta NoSQL כדי לטפל בשמירת נתונים, מבטיח שהלוגיקה של ירושה וסיווג תיחודי תיושם באופן חלק במהלך האחסון והאחזור.

Java

 

מסקנה

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

לקוד המלא, בקרו ב־GitHub Repository.

Source:
https://dzone.com/articles/arangodb-success-through-multivalue-database