Hive הוא כלי לניתוח ביג דאטה בשימוש נרחב בעסק, וזה מקום נפלא להתחיל בו אם אתה חדש ב-Big Data. שיעור Apache Hive זה עובר על היסודות של Apache Hive, מדוע הכוורת הכרחית, התכונות שלה וכל מה שאתה צריך לדעת.
בואו נבין תחילה את מסגרת Hadoop עליה בנויה Apache Hive.
אפאצ'י חאופ
Apache Hadoop הוא חינמי ו קוד פתוח פלטפורמה לאחסון ועיבוד מערכי נתונים גדולים בגודל מג'יגה-בייט ועד פטה-בייט. Hadoop מאפשרת לאסוף מחשבים רבים כדי לנתח מערכי נתונים עצומים במקביל, במקום לדרוש ממחשב גדול אחד לאחסן ולנתח את הנתונים.
MapReduce ו-Hadoop Distributed File System הם שניים מהרכיבים:
- MapReduce - MapReduce היא טכניקת תכנות מקבילה לטיפול בכמויות עצומות של נתונים מאורגנים, חצי מובנים ובלתי מובנים על אשכולות חומרה של סחורות.
- HDFS – HDFS (Hadoop Distributed File System) הוא רכיב מסגרת Hadoop המאחסן ומעבד נתונים. זוהי מערכת קבצים סובלנית לתקלות הפועלת על חומרה סטנדרטית
תתי פרויקטים (כלים) שונים במערכת האקולוגית של Hadoop, כולל Sqoop, Pig וכוורת, משמשים כדי לסייע למודולי Hadoop.
- כוורת – Hive היא מסגרת לכתיבת סקריפטים בסגנון SQL המבצעים חישובי MapReduce.
- חזיר – Pig היא שפת תכנות פרוצדורלית שעשוי לשמש ליצירת סקריפט לתהליכי MapReduce.
- סקופ – Sqoop הוא כלי לייבוא וייצוא נתונים בין HDFS ו-RDBMS.
מה כוורת אפאצ'י?
Apache Hive הוא קוד פתוח מחסן נתונים תוכנית לקריאה, כתיבה וניהול מערכי נתונים ענקיים המאוחסנים ישירות במערכת הקבצים המבוזרת של Apache Hadoop (HDFS) או במערכות אחסון נתונים אחרות כמו Apache HBase.
מפתחי SQL עשויים להשתמש ב-Hive כדי ליצור הצהרות Hive Query Language (HQL) עבור שאילתות וניתוח נתונים הדומות להצהרות SQL רגילות. הוא נוצר כדי להקל על תכנות MapReduce על ידי ביטול הצורך ללמוד ולכתוב קוד Java ארוך. במקום זאת, תוכל לכתוב את השאילתות שלך ב-HQL, וה-Hive תבנה את המפה ותצמצם עבורך את הפונקציות.
הממשק דמוי SQL של Apache Hive הפך ל-Gold Standard לביצוע חיפושים אד-הוק, סיכום וניתוח נתוני Hadoop. כאשר נכלל בענן רשתות מחשוב, פתרון זה הוא חסכוני וניתן להרחבה במיוחד, וזו הסיבה שחברות רבות, כולל נטפליקס ואמזון, ממשיכות לפתח ולשפר את Apache Hive.
הִיסטוֹרִיָה
במהלך התקופה שלהם בפייסבוק, ג'וידיפ סן סרמה ואשיש תוסו יצרו יחד את Apache Hive. שניהם זיהו שכדי להפיק את המרב מ-Hadoop, הם יצטרכו ליצור כמה משימות Java Map-Reduce מסובכות למדי. הם זיהו שהם לא יוכלו לחנך את צוותי ההנדסה והאנליזה המתרחבים במהירות שלהם על הכישורים שהם צריכים כדי למנף את Hadoop ברחבי החברה. מהנדסים ואנליסטים השתמשו לעתים קרובות ב-SQL כממשק משתמש.
בעוד ש-SQL יכול לענות על רוב צרכי האנליטיקה, המפתחים התכוונו גם לשלב את יכולת התכנות של Hadoop. Apache Hive נבעה משתי היעדים הללו: שפה הצהרתית מבוססת SQL, שאפשרה גם למפתחים להביא סקריפטים ותוכניות משלהם כאשר SQL לא הספיק.
הוא פותח גם כדי להחזיק מטא נתונים מרכזיים (מבוססים על Hadoop) על כל מערכי הנתונים בחברה כדי להקל על בניית ארגונים מונעי נתונים.
איך Apache Hive עובד?
בקצרה, Apache Hive ממירה תוכנית קלט שנכתבה בשפת HiveQL (דומה ל-SQL) למשימות Java MapReduce, Tez או Spark אחת או יותר. (כל מנועי הביצוע הללו תואמים ל-Hadoop YARN.) לאחר מכן, Apache Hive מסדר את הנתונים לטבלאות עבור Hadoop Distributed File System HDFS) ומבצע את המשימות על אשכול כדי לקבל תשובה.
נתונים
טבלאות ה- Apache Hive מסודרות באותו אופן שבו מאורגנות טבלאות במסד נתונים יחסי, כאשר יחידות הנתונים נעות בגודלן מגדולות לקטנות יותר. מסדי נתונים מורכבים מטבלאות המחולקות לחטיבות, המחולקות עוד יותר לדליים. HiveQL (שפת שאילתות כוורת) משמשת לגישה לנתונים, אותם ניתן לשנות או לצרף. נתוני טבלה מסודרים בתוך כל מסד נתונים, ולכל טבלה יש ספריית HDFS משלה.
אדריכלות
כעת נדבר על ההיבט החשוב ביותר של אדריכלות כוורת. הרכיבים של Apache Hive הם כדלקמן:
Metastore - הוא עוקב אחר מידע על כל טבלה, כגון המבנה והמיקום שלה. המטא נתונים של המחיצה נכללים גם ב-Hive. זה מאפשר לנהג לעקוב אחר ההתקדמות של מערכי נתונים שונים המפוזרים על פני האשכול. הנתונים מאוחסנים בפורמט RDBMS קונבנציונלי. מטא נתונים של כוורת חשובים ביותר לנהג כדי לשמור על מעקב אחר הנתונים. שרת הגיבוי משכפל נתונים על בסיס קבוע, כך שניתן לשחזר אותם במקרה של אובדן נתונים.
נהג – הצהרות HiveQL מתקבלות על ידי מנהל התקן, שמתפקד כבקר. על ידי הקמת הפעלות, הנהג יוזם את ביצוע ההצהרה. הוא עוקב אחר תוחלת החיים וההתקדמות של המנהל. במהלך ביצוע הצהרת HiveQL, מנהל ההתקן שומר את המטא-נתונים הנדרשים. זה משמש גם כנקודת איסוף נתונים או תוצאות שאילתות בעקבות תהליך ההפחתה.
מהדר - הוא מבצע את הידור השאילתות של HiveQL. השאילתה מומרת כעת לתוכנית ביצוע. המשימות רשומות בתוכנית. זה כולל גם את השלבים שעל MapReduce לנקוט כדי להשיג את התוצאה כפי שתורגמה על ידי השאילתה. השאילתה מומרת לעץ תחביר מופשט על ידי המהדר של Hive (AST). ממיר את ה-AST לגרף אציקלי מכוון לאחר בדיקת תאימות ותקלות בזמן הידור (DAG).
מיטוב - זה מייעל את DAG על ידי ביצוע שינויים שונים בתוכנית הביצוע. הוא משלב טרנספורמציות לשיפור היעילות, כגון הפיכת צינור של חיבורים לחיבור יחיד. כדי לשפר את המהירות, כלי האופטימיזציה עשוי לחלק פעילויות, כגון החלת טרנספורמציה על נתונים לפני ביצוע פעולת צמצום.
הוצאה לפועל – המבצע מריץ את המשימות עם סיום ההידור והאופטימיזציה. העבודות מועברות על ידי המוציא לפועל.
CLI, UI ושרת חסכון – ממשק שורת הפקודה (CLI) הוא ממשק משתמש המאפשר למשתמש חיצוני לתקשר עם Hive. שרת החסכון של Hive, בדומה לפרוטוקולי JDBC או ODBC, מאפשר ללקוחות חיצוניים לתקשר עם Hive דרך רשת.
אבטחה
Apache Hive משולבת עם האבטחה של Hadoop, המשתמשת ב-Kerberos עבור אימות הדדי של שרת-לקוח. ה-HDFS מכתיב הרשאות לקבצים שנוצרו לאחרונה ב- Apache Hive, מה שמאפשר לך לאשר על ידי המשתמש, הקבוצה ואחרים.
תכונות עיקריות
- Hive תומך בטבלאות חיצוניות, המאפשרות לך לעבד נתונים מבלי לאחסן אותם ב-HDFS.
- זה גם מאפשר פילוח נתונים ברמת הטבלה כדי להגביר את המהירות.
- Apache Hive עונה מצוין על הצורך בממשק ברמה נמוכה של Hadoop.
- Hive מקל על סיכום נתונים, שאילתות וניתוח.
- HiveQL אינו דורש שום כישורי תכנות; מספיקה הבנה פשוטה של שאילתות SQL.
- אנו יכולים גם להשתמש ב-Hive כדי לבצע שאילתות אד-הוק לניתוח נתונים.
- זה ניתן להרחבה, מוכר וניתן להתאמה.
- HiveQL אינו דורש שום כישורי תכנות; מספיקה הבנה פשוטה של שאילתות SQL.
הטבות
Apache Hive מאפשר דוחות סוף יום, הערכות עסקאות יומיות, חיפושים אד-הוק וניתוח נתונים. התובנות המקיפות שמספקת Apache Hive נותנות יתרונות תחרותיים משמעותיים ומקלות עליך להיענות לדרישות השוק.
הנה כמה מהיתרונות של מידע כזה זמין:
- קל לשימוש - עם השפה דמויית ה-SQL שלה, שאילתת נתונים היא פשוטה להבנה.
- הכנסת נתונים מואצת — מכיוון ש- Apache Hive קורא את הסכימה מבלי לאמת את סוג הטבלה או הגדרת הסכימה, אין צורך לקרוא, לנתח ולהעביר נתונים בסידרה לדיסק בפורמט הפנימי של מסד הנתונים. לעומת זאת, במסד נתונים רגיל, יש לאמת נתונים בכל פעם שהם מתווספים.
- מדרגיות מעולה, גמישות וחסכוניות - מכיוון שהנתונים מאוחסנים ב-HDFS, Apache Hive יכול להכיל 100 אלפי פטה-בייט של נתונים, מה שהופך אותו לאפשרות הרבה יותר ניתנת להרחבה מאשר מסד נתונים טיפוסי. Apache Hive, כשירות Hadoop מבוסס ענן, מאפשר ללקוחות להסתובב במהירות מעלה ומטה שרתים וירטואליים כדי לעמוד בעומסי עבודה משתנים.
- כושר עבודה נרחב – מערכי נתונים גדולים עשויים לטפל בעד 100,000 שאילתות בשעה.
מגבלות
- באופן כללי, לשאילתות Apache Hive יש זמן אחזור גבוה מאוד.
- התמיכה בשאילתות משנה מוגבלת.
- שאילתות בזמן אמת ושינויים ברמת השורה אינם זמינים ב- Apache Hive.
- אין תמיכה לדעות שהתממשו.
- בכוורת, פעולות עדכון ומחיקה אינן נתמכות.
- לא מיועד ל-OLTP (תהליך מעבר מקוון).
תחילת העבודה עם Apache Hive
Apache Hive הוא שותף חזק של Hadoop שמפשט ומייעל את זרימות העבודה שלך. כדי להפיק את המרב מ- Apache Hive, אינטגרציה חלקה חיונית. הצעד הראשון הוא ללכת ל- אתר אינטרנט.
1. התקנה כוורת משחרור יציב
התחל בהורדת המהדורה היציבה האחרונה של Hive מאחת ממראות ההורדה של Apache (ראה שחרורים של כוורת). לאחר מכן יש לפרק את הטארבול. פעולה זו תיצור תיקיית משנה בשם hive-xyz (כאשר xyz הוא מספר השחרור):
הגדר את משתנה הסביבה HIVE_HOME כך שיצביע על ספריית ההתקנה:
לבסוף, הוסף $HIVE_HOME/bin לשלך PATH
:
2. Running Hive
כוורת משתמשת ב-Hadoop, אז:
- אתה חייב להיות Hadoop בדרכך או
3. פעולת DLL
יצירת טבלת כוורת
יוצר טבלה בשם pokes עם שתי עמודות, כאשר הראשונה שבהן היא מספר שלם והשנייה שבהן היא מחרוזת.
דפדוף בטבלאות
פירוט כל הטבלאות
שינוי והורדת טבלאות
ניתן לשנות את שמות הטבלאות ולהוסיף או להחליף עמודות:
ראוי לציין כי REPLACE COLUMNS מחליף את כל העמודות הקיימות תוך שינוי רק במבנה הטבלה ולא בנתונים. יש להשתמש ב-SerDe מקורי בטבלה. ניתן להשתמש ב- REPLACE COLUMNS גם כדי להסיר עמודות מהסכימה של טבלה:
הטלת טבלאות
ישנן פעולות ותכונות רבות נוספות ב- Apache Hive שתוכל ללמוד עליהן על ידי ביקור באתר הרשמי.
סיכום
Hive definition הוא ממשק תוכנית נתונים לשאילתות וניתוח עבור מערכי נתונים ענקיים שנבנו על גבי Apache Hadoop. אנשי מקצוע בוחרים בו על פני תוכנות, כלים ותוכנות אחרים מכיוון שהוא מיועד בעיקר לנתונים נרחבים של Hive ופשוט לשימוש.
מקווה שהמדריך הזה יעזור לך להתחיל עם Apache Hive ולהפוך את זרימות העבודה שלך ליעילות יותר. ספר לנו בתגובות.
השאירו תגובה