במסמך הזה מתוארים תצוגות ניתוח נתונים ומתי כדאי ליצור אותן. בנוסף, מתוארים ההבדלים בין תצוגות ניתוח לבין שאילתות שמורות.
סקירה כללית
תצוגת ניתוח נתונים היא משאב שאפשר להריץ עליו שאילתות. כלומר, אחרי שמגדירים תצוגת אנליטיקס, אפשר לכתוב שאילתות שבהן מציינים את תצוגת האנליטיקס בסעיף FROM.
היתרון העיקרי בשימוש בתצוגות ניתוח נתונים הוא שאתם לא מוגבלים לשאילתות של הנתונים בפורמט שמוגדר על ידי API או מערכת. תצוגת ניתוח מאפשרת לכם להגדיר סכימה, וכך לפשט את השאילתות או לקצר את הזמן שאתם משקיעים בכתיבת שאילתות. השאילתה בתצוגת ניתוח הנתונים יכולה לבצע פעולות כמו שמירה רק של שדות ספציפיים, שינוי שם של שדות, העברה של שדות מקוננים לעמודה ברמה העליונה וביצוע קיבוץ וצבירה.
תצוגות מפורטות ב-Analytics הן לא תצוגות מהותיות. תצוגת Analytics היא לא תצוגה מחושבת מראש ששומרת במטמון באופן תקופתי את תוצאות השאילתות. לכן, שליחת שאילתה לתצוגה מפורטת של ניתוח נתונים שקולה לשליחת שאילתה לתצוגות שמופיעות בשאילתה של התצוגה המפורטת של ניתוח הנתונים.
תצוגות מפורטות ב-Analytics הן חזקות יותר משאילתות שמורות, שהן שאילתות שמריצים בדף Log Analytics ואז שומרים. אפשר להריץ מחדש שאילתה שמורה, אבל אי אפשר להריץ שאילתה על התוצאות של שאילתה שמורה.
סוגים של תצוגות ניתוח נתונים
יש שני סוגים של תצוגות ניתוח נתונים: תצוגות שהוגדרו על ידי המשתמש ותצוגות שהוגדרו על ידי המערכת:
תצוגות מפורטות של ניתוח נתונים שהוגדרו על ידי המשתמש הן תצוגות מפורטות של ניתוח נתונים שאתם יוצרים. אתם יכולים לשלוח שאילתות, לערוך ולמחוק תצוגות מותאמות אישית של נתוני Analytics.
תצוגות מפורטות ב-Analytics שמוגדרות על ידי המערכת הן תצוגות מפורטות ב-Analytics שנוצרות על ידי שירותיGoogle Cloud . אפשר להריץ שאילתות בתצוגות ניתוח נתונים שהוגדרו על ידי המערכת. עם זאת, אי אפשר לערוך או למחוק אותם.
מידע על הצגת התצוגות המפורטות של Analytics בGoogle Cloud פרויקט זמין במאמר הצגת התצוגות המפורטות של Analytics.
המיקום של התצוגות המפורטות ב-Analytics
המיקום של תצוגת ניתוח נתונים נקבע לפי המיקום של המשאבים שהיא שולחת אליהם שאילתות. לדוגמה, אם תצוגת ניתוח נתונים שולחת שאילתה לתצוגת יומן או לתצוגת יכולת צפייה שנמצאת במיקום global, גם המיקום של תצוגת ניתוח הנתונים צריך להיות global. כשמשתמשים ב Google Cloud מסוף
כדי ליצור תצוגת נתונים של Analytics, המיקום מוגדר באופן אוטומטי.
תרחישים לדוגמה
היתרון העיקרי של תצוגת ניתוח נתונים הוא שאתם לא מוגבלים לשאילתות על הנתונים בפורמט שהמערכת מגדירה. תצוגת ניתוח נתונים מאפשרת לכם להגדיר סכימה, וכך לפשט את השאילתות או לקצר את הזמן שאתם משקיעים בכתיבת שאילתות.
שאילתה לגבי פרטי הרשת
אתם רוצים לנתח את ביצועי הרשת באמצעות VPC Flow Logs. צריך לנתח את הביצועים הכוללים של הרשת ולזהות רשתות ספציפיות, כתובות IP ומארחים. המידע הזה מאוחסן בשדות מקוננים בשדה json_payload של רשומה ביומן.
כדי לפשט את שאילתות הניתוח, יוצרים את תצוגת האנליטיקה הבאה ונותנים לה את השם network_details:
SELECT
-- Create a column for each network field.
JSON_VALUE(resource.labels.subnetwork_name) subnetwork_name,
JSON_VALUE(json_payload.src_instance.vm_name) vm_name,
JSON_VALUE(json_payload.connection.src_ip) as src_ip,
JSON_VALUE(json_payload.connection.src_port) as src_port,
JSON_VALUE(json_payload.connection.dest_ip) as dest_ip,
JSON_VALUE(json_payload.connection.dest_port) as dest_port,
CAST(JSON_VALUE(json_payload.bytes_sent) as INT64) as bytes_sent,
CAST(JSON_VALUE(json_payload.packets_sent) as INT64) as packets_sent
FROM
-- Query one log view.
`PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
WHERE
-- Only query the VPC Flow Logs log.
log_id = "compute.googleapis.com/vpc_flows"
AND SEARCH(json_payload.reporter, "SRC")
לפני שמשתמשים בשאילתה, צריך להגדיר את הערכים של המשתנים הבאים:
- PROJECT_ID: מזהה הפרויקט.
- LOCATION: המיקום של תצוגת היומן.
- BUCKET_ID: השם או המזהה של קטגוריה ביומן.
- LOG_VIEW_ID: המזהה של תצוגת היומן, שמוגבל ל-100 תווים ויכול לכלול רק אותיות, ספרות, קווים תחתונים ומקפים.
כשרוצים לנתח את ביצועי הרשת, שולחים שאילתה לתצוגת הניתוח. לדוגמה, אם אתם מעוניינים רק בשם המופע ובכמות הנתונים שנשלחו, תוכלו לכתוב את השאילתה הבאה:
SELECT vm_name, bytes_sent, packets_sent,
FROM `analytics_view.my_project.global.network_details`
ORDER BY bytes_sent DESC
LIMIT 100
שאילתת בסיס לניתוח זמן האחזור של API
כמה צוותים צריכים נתוני ביצועים שבועיים כדי להשלים את הניתוח שלהם. במקום שכל צוות ייצור את הנתונים השבועיים, אתם יוצרים תצוגת ניתוח ששולפת את הנתונים השבועיים. צוותים אחרים יכולים לשלוח שאילתות לתצוגת ה-Analytics ואז לבצע את הניתוח שלהם.
השאילתה הבאה ממחישה איך להשתמש ב-SQL כדי לחשב את חביון הבקשה המינימלי, המקסימלי והממוצע:
SELECT week, MIN(took_ms) as min, MAX(took_ms) AS max, AVG(took_ms) AS avg
FROM (
SELECT TIMESTAMP_TRUNC(timestamp, WEEK) AS week,
CAST( JSON_VALUE(json_payload, '$."http.resp.took_ms"') AS INT64) as took_ms
FROM
-- Query one log view.
`PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
WHERE json_payload IS NOT NULL
AND SEARCH(labels,"frontend")
AND JSON_VALUE(json_payload.message) = "request complete"
ORDER BY took_ms DESC, timestamp ASC
)
GROUP BY week ORDER BY week
חילוץ שם השירות של ה-trace
נניח שאתם רוצים לכתוב שאילתות שמנתחות את נתוני העקבות, ואתם רוצים להציג או לקבץ לפי שם שירות מסונתז. השאילתה של תצוגת הניתוח קובעת את שם השירות של span באמצעות הפונקציה COALESCE, שמעריכה רשימה של ביטויים לפי הסדר ומחזירה את הערך של הביטוי הראשון שלא מוערך כ-NULL:
SELECT
start_time,
-- Set the value of service name based on the first non-null value in the list.
COALESCE(
JSON_VALUE(resource.attributes, '$."service.name"'),
JSON_VALUE(attributes, '$."service.name"'),
JSON_VALUE(attributes, '$."g.co/gae/app/module"')) AS service_name,
name AS span_name,
duration_nano,
status.code AS status,
trace_id,
span_id
FROM
`PROJECT_ID.us._Trace.Spans._AllSpans`
LIMIT 10
לפני שמשתמשים בשאילתה, מחליפים את PROJECT_ID במזהה של פרויקטGoogle Cloud .
איחוד נתונים של מעקב ויומנים באמצעות מזהה המעקב
כשמנתחים אפליקציה, לפעמים רוצים ליצור קורלציה בין נתוני היומן לבין נתוני המעקב. אפשרות אחת היא ליצור תצוגת ניתוח נתונים שמבצעת את הפעולה join ומדווחת על שדות נבחרים.
השאילתה הבאה מצטרפת לנתוני יומן ולנתוני מעקב באמצעות מזהי היחידה הלוגית למעקב והמעקב:
SELECT
T.trace_id,
T.span_id,
T.name,
T.start_time,
T.duration_nano,
L.log_name,
L.severity,
L.json_payload,
L.text_payload,
L.proto_payload,
L.insert_id
FROM
`PROJECT_ID.us._Trace.Spans._AllSpans` AS T
JOIN
`PROJECT_ID.us.BUCKET_ID.LOG_VIEW_ID` AS L
ON
-- Join log and trace data by both the span ID and trace ID.
-- Don't join only on span ID, this field isn't globally unique.
T.span_id = L.span_id
-- A regular expression is required because the storage format of the trace ID
-- differs between a log view and a trace view.
AND T.trace_id = REGEXP_EXTRACT(L.trace, r'/([^/]+)$')
לפני שמשתמשים בשאילתה, צריך להגדיר את הערכים של המשתנים הבאים:
- PROJECT_ID: מזהה הפרויקט.
- BUCKET_ID: השם או המזהה של קטגוריה ביומן.
- LOG_VIEW_ID: המזהה של תצוגת היומן, שמוגבל ל-100 תווים ויכול לכלול רק אותיות, ספרות, קווים תחתונים ומקפים.
בדוגמה, אפשר לראות שתצוגת היומן ותצוגת יכולת הצפייה נמצאות באותו מיקום, us. תצוגת ניתוח נתונים יכולה לשלוח שאילתות לכמה תצוגות, אבל התצוגות האלה צריכות להיות באותו מיקום.
מגבלות
המגבלות הבאות חלות על תצוגות מפורטות של נתונים:
- תצוגת ניתוח נתונים יכולה לשלוח שאילתות רק לתצוגות של יומנים ולתצוגות של יכולת צפייה.
- משאב ההורה של תצוגת Analytics חייב להיות פרויקט Google Cloud .
- אפשר להריץ שאילתות על תצוגת ניתוח נתונים רק באמצעות הדף Log Analytics, ורק כשמשתמשים במנוע השאילתות Log Analytics (ברירת מחדל).
- כל התצוגות שהשאילתה של תצוגת הניתוח מתייחסת אליהן צריכות להיות באותו מיקום.
- כדי ליצור תצוגות ניתוח נתונים או לנהל אותן, צריך להשתמש במסוף Google Cloud .
- אפשר ליצור לכל היותר 100 תצוגות מפורטות של נתוני ניתוח לכל פרויקט. Google Cloud
- אפשר ליצור עד 50 תצוגות מפורטות של Analytics לכל אזור.
- בכל פרויקט יכולים להיות עד 10 אזורים עם תצוגת ניתוח נתונים. Google Cloud
המאמרים הבאים
- יצירה, שליחת שאילתות וניהול של תצוגות ניתוח.
- שאילתה וניתוח של נתוני טלמטריה באמצעות Log Analytics.
- יצירת תרשים של תוצאות שאילתת SQL.
- שמירה ושיתוף של שאילתות
- דוגמאות לשאילתות SQL.