‫Spanner לעומסי עבודה לא רלציוניים

‫Spanner הוא מערכת מסדי נתונים מנוהלת לחלוטין ואמינה מאוד. ‫Spanner התפתח למערכת ניהול של מסד נתונים יחסיים, אבל הבסיס שלו הוא מערכת לא יחסית לאחסון צמדי מפתח/ערך, והוא שומר על המאפיינים הבסיסיים של מערכת כזו. לכן, אתם יכולים להשתמש ב-Spanner כמסד נתונים לא רלציוני (NoSQL) ולבצע מיגרציה ממסדי נתונים לא רלציוניים אחרים אל Spanner. המסמך הזה עוזר להבין אם Spanner הוא הפתרון הנכון לעומסי עבודה לא רלציוניים.

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

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

איך Spanner עומד בקריטריונים של מסד נתונים NoSQL

‫Spanner עומד בקריטריונים המרכזיים הבאים לעומסי עבודה של NoSQL.

היקף וביצועים

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

NoSQL API

בדרך כלל ניגשים למסדי נתונים רלציוניים רגילים באמצעות SQL, שדורש זמן ללמידה למפתחים שלא מכירים מסדי נתונים רלציוניים. בנוסף, לקוחות של מסדי הנתונים האלה מסתמכים בדרך כלל על חיבורים קבועים, ונדרשת פריסה של תשתית של מאגרי חיבורים כדי להרחיב את היקף השימוש. לעומת זאת, ממשק Spanner API מבוסס על מודל בקשות ותגובות של gRPC/HTTP2 שמטפל אוטומטית בכשלים בחיבור. ‫Spanner מספק ממשקי API פשוטים, יעילים וטבעיים לשפה, לקריאה ולכתיבה של NoSQL, שלא נדרש ידע ב-SQL כדי להשתמש בהם. בנוסף, לקוחות Spanner לא צריכים איגום חיבורים כדי להרחיב את הקיבולת.

מנוהל באופן מלא

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

נתונים חצי מובנים

‫Spanner תומך בסוגי נתונים גמישים כמו JSON ו-BYTES, שמשמשים לאחסון נתונים חצי מובְנים או לא מובְנים. בדומה למסדי נתונים אחרים של NoSQL, אתם יכולים להשתמש בסוגי הנתונים האלה כדי להימנע מהצורך לציין מראש את כל סכימת האחסון.

בקרת גישה

בדומה למסדי נתונים אחרים של NoSQL, ‏ Spanner תומך בבקרת גישה שמבוססת על IAM. אדמינים יכולים להגדיר ולנהל מדיניות של בקרת גישה בלי לאחסן שמות משתמשים וסיסמאות במסד הנתונים.

מה ההבדל בין Spanner לבין מסדי נתונים רגילים של NoSQL

ל-Spanner יש את היתרונות הבאים בהשוואה למסדי נתונים רגילים של NoSQL.

טרנזקציות

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

מידול נתונים

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

שאילתות אד-הוק

גם אם אתם משתמשים בעיקר ב-NoSQL API, עדיין כדאי להריץ שאילתות אד-הוק למטרות ניפוי באגים או ניתוח. ‫Spanner פועל לפי שפת השאילתות הסטנדרטית של SQL. אתם יכולים להשתמש בתעדוף בקשות כדי לבודד תנועה אד-הוק בעדיפות נמוכה מתנועה אונליין, או להשתמש בData Boost של Spanner כדי להריץ שאילתות ניתוח על משאבי מחשוב שמבודדים לחלוטין מתנועת מסד הנתונים אונליין.

אינדקסים משניים עם עקביות חזקה

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

האם Spanner מתאים לצרכים שלכם במסד נתונים NoSQL?

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

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