כיצד ליצור מדדי Elasticsearch

How Create Elasticsearch Indices



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

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







  • שימוש במסוף, במיוחד, cURL
  • ידע בסיסי בממשקי API ו- JSON
  • הגשת בקשת HTTP

הערה: הדרכה זו גם מניחה שיש לך Elasticsearch מותקן ופועל במערכת שלך.



מהם מדדי Elasticsearch?

מבלי לפשט או לסבך יותר מדי דברים, אינדקס Elasticsearch הוא אוסף של מסמכי JSON קשורים.



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





בואו נתייחס לאינדקס Elasticsearch כמסד נתונים בעולם ה- SQL.

  • MySQL => מסדי נתונים => טבלאות => עמודות/שורות
  • Elasticsearch => מדדים => סוגים => מסמכי JSON עם מאפיינים

כיצד ליצור אינדקס Elasticsearch

Elasticsearch משתמש בממשק API אינטנסיבי של REST כדי לחשוף את שירותיה. פונקציונליות זו מאפשרת לך להשתמש בבקשות HTTP לביצוע פעולות באשכול Elasticsearch. לכן, נשתמש ב- API ליצור אינדקס ליצירת אינדקס חדש.



במדריך זה נשתמש ב- cURL לשליחת הבקשות ולשמירה על יושרה ושימושיות לכל המשתמשים. עם זאת, אם אתה נתקל בשגיאות ב- cURL, שקול להשתמש במסוף Kibana.

התחביר ליצירת אינדקס חדש באשכול Elasticsearch הוא:

PUT /

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

תוכל גם לציין תכונות שונות של האינדקס, כגון בגוף האינדקס:

  • ההגדרות לאינדקס
  • כינויים באינדקס
  • מיפויים לשדות אינדקס

שם האינדקס הוא פרמטר נדרש; אחרת, תקבל שגיאה עבור ה- URIL (/)

curl -X PUT מארח מקומי: 9200
{'error': 'שיטת HTTP לא נכונה עבור uri [/] ושיטה [PUT], מותר: [DELETE, HEAD, GET]', 'status': 405}

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

PUT /single_index

עבור cURL, השתמש בפקודה:

curl -X PUT 'localhost: 9200/single_index? pretty'

פקודה זו אמורה לגרום ל- HTTP סטטוס 200 בסדר ולהודעה עם אישור: true as:

{
הודה: נכון,
'shards_acknowledged': נכון,
'index': 'single_index'
}

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

כללי שמות אינדקס

בעת יצירת שמות למדדי Elasticsearch, עליך לציית לתקני השמות הבאים:

  1. שם האינדקס חייב להיות באותיות קטנות בלבד.
  2. שמות האינדקס לא יכולים להתחיל עם מקף (-), קו תחתון (_) או סימן חיבור (+)
  3. השמות לא יכולים להיות. או ..
  4. שמות אינדקס אינם יכולים לכלול תווים מיוחדים כגון: , /, *,?,,, |, '(תו רווח), ,, #
  5. אורך שמות האינדקס חייב להיות קטן מ- 255 בתים. תווים מרובי בתים ייחשבו באורך הכולל של שם האינדקס. לדוגמה, אם תו יחיד הוא באורך 8 בתים, אורך השם הכולל שנותר הוא 255 - 8
  6. בגרסה האחרונה של Elasticsearch, שמות המתחילים בא. שמורות למדדים נסתרים ולמדדים פנימיים המשמשים את התוספים של Elasticsearch.

כיצד ליצור גוף אינדקס

בעת שימוש בבקשה PUT ליצירת אינדקס, תוכל להעביר ארגומנטים שונים המגדירים את ההגדרות לאינדקס שברצונך ליצור. ערכים שאתה יכול לציין בגוף כוללים:

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

לדוגמא ליצירת אינדקס עם תצורות גוף, שקול את הבקשה להלן:

PUT /single_index_with_body
{
'הגדרות': {
'number_of_shards': 2,
'number_of_replicas': 2
},
מיפויים: {
'נכסים': {
'field1': {'type': 'object'}
}
}
}

לבקשה שווה ערך ל- CURL:

curl -XPUT 'http: // localhost: 9200/single_index_with_body' -H 'סוג תוכן: application/json' -d '{' settings ': {' number_of_shards ': 2,' number_of_replicas ': 2},' mappings ' : {'properties': {'field1': {'type': 'object'}}}} '

הבקשה לעיל יוצרת אינדקס חדש בשם single_index_with_body עם 2 מספרים של שברים ו -2 העתקים. הוא גם יוצר מיפוי עם שדה של שם שדה 1 והקלד כאובייקט JSON.

לאחר שתשלח את הבקשה, תקבל תגובה עם סטטוס הבקשה כדלקמן:

{
הודה: נכון,
'shards_acknowledged': נכון,
'index': 'single_index_with_body'
}

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

כיצד לצפות באינדקס Elasticsearch

כדי להציג את המידע על האינדקס שיצרת, השתמש בבקשה דומה לזו של יצירת אינדקס, אך השתמש בשיטת HTTP במקום ב- PUT כ:

GET /single_index_with_body

עבור cURL,

curl -XGET http: // localhost: 9200/single_index_with_body

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

{
'single_index_with_body': {
'כינויים': {},
'מיפויים': {
'נכסים' : {
'field1': {
'type': 'object'
}
}
},
'הגדרות': {
'אינדקס' : {
'ניתוב': {
'הקצאה': {
'כולל': {
'_tier_preference': 'data_content'
}
}
},
'number_of_shards': '2',
'provided_name': 'single_index_with_body',
'creation_date': '1611045687208',
'number_of_replicas': '2',
'uuid': '3TRkO7xmQcSUOOGtb6pXVA',
'גרסה': {
'created': '7100299'
}
}
}
}
}

סיכום

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

על ידי שימוש במדריך זה, כעת תוכל ליצור ולהציג מדדים באמצעות ה- Elasticsearch API.