የጣቢያ ስታቲስቲክስ እና የእርስዎ ትንሽ ማከማቻ

ዌባላይዘር እና ጎግል አናሌቲክስ ለብዙ አመታት በድረ-ገጾች ላይ ምን እየተከሰተ እንዳለ ግንዛቤ እንዳገኝ ረድተውኛል። አሁን በጣም ትንሽ ጠቃሚ መረጃ እንደሚሰጡ ተረድቻለሁ። የመዳረሻ.ሎግ ፋይልዎን በመድረስ ስታቲስቲክስን ለመረዳት እና እንደ sqlite ፣ HTML ፣ sql ቋንቋ እና ማንኛውንም የስክሪፕት ፕሮግራሚንግ ቋንቋ ያሉ በጣም መሠረታዊ መሳሪያዎችን ለመተግበር በጣም ቀላል ነው።

የWebalizer የውሂብ ምንጭ የአገልጋዩ access.log ፋይል ነው። ጠቅላላ የትራፊክ መጠን ብቻ ግልጽ የሆነው ባር እና ቁጥሮቹ የሚመስሉት ይህ ነው።

የጣቢያ ስታቲስቲክስ እና የእርስዎ ትንሽ ማከማቻ
የጣቢያ ስታቲስቲክስ እና የእርስዎ ትንሽ ማከማቻ
እንደ ጎግል አናሌቲክስ ያሉ መሳሪያዎች ከተጫነው ገጽ ራሳቸው መረጃዎችን ይሰበስባሉ። ትክክለኛ ድምዳሜ ላይ ለመድረስ ብዙውን ጊዜ አስቸጋሪ በሆነበት መሠረት ሁለት ንድፎችን እና መስመሮችን ያሳዩናል። ምናልባት የበለጠ ጥረት ማድረግ ነበረበት? አላውቅም.

ስለዚህ፣ በድር ጣቢያው የጎብኝዎች ስታቲስቲክስ ውስጥ ምን ማየት ፈለግሁ?

የተጠቃሚ እና የቦት ትራፊክ

ብዙ ጊዜ የጣቢያ ትራፊክ ውስን ነው እና ምን ያህል ጠቃሚ ትራፊክ ጥቅም ላይ እንደሚውል ማየት ያስፈልጋል። ለምሳሌ፣ እንደዚህ፡-

የጣቢያ ስታቲስቲክስ እና የእርስዎ ትንሽ ማከማቻ

የ SQL መጠይቅ ሪፖርት

SELECT
1 as 'StackedArea: Traffic generated by Users and Bots',
strftime('%d.%m', datetime(FCT.EVENT_DT, 'unixepoch')) AS 'Day',
SUM(CASE WHEN USG.AGENT_BOT!='n.a.' THEN FCT.BYTES ELSE 0 END)/1000 AS 'Bots, KB',
SUM(CASE WHEN USG.AGENT_BOT='n.a.' THEN FCT.BYTES ELSE 0 END)/1000 AS 'Users, KB'
FROM
  FCT_ACCESS_USER_AGENT_DD FCT,
  DIM_USER_AGENT USG
WHERE FCT.DIM_USER_AGENT_ID=USG.DIM_USER_AGENT_ID
  AND datetime(FCT.EVENT_DT, 'unixepoch') >= date('now', '-14 day')
GROUP BY strftime('%d.%m', datetime(FCT.EVENT_DT, 'unixepoch'))
ORDER BY FCT.EVENT_DT

ግራፉ የቦቶች ቋሚ እንቅስቃሴን ያሳያል። በጣም ንቁ የሆኑትን ተወካዮች በዝርዝር ማጥናት አስደሳች ይሆናል.

የሚያበሳጩ ቦቶች

በተጠቃሚ ወኪል መረጃ መሰረት ቦቶችን እንመድባለን። በዕለታዊ ትራፊክ ላይ ተጨማሪ ስታቲስቲክስ ፣ የተሳካላቸው እና ያልተሳኩ ጥያቄዎች ብዛት ስለ ቦት እንቅስቃሴ ጥሩ ሀሳብ ይሰጣሉ።

የጣቢያ ስታቲስቲክስ እና የእርስዎ ትንሽ ማከማቻ

የ SQL መጠይቅ ሪፖርት

SELECT 
1 AS 'Table: Annoying Bots',
MAX(USG.AGENT_BOT) AS 'Bot',
ROUND(SUM(FCT.BYTES)/1000 / 14.0, 1) AS 'KB per Day',
ROUND(SUM(FCT.IP_CNT) / 14.0, 1) AS 'IPs per Day',
ROUND(SUM(CASE WHEN STS.STATUS_GROUP IN ('Client Error', 'Server Error') THEN FCT.REQUEST_CNT / 14.0 ELSE 0 END), 1) AS 'Error Requests per Day',
ROUND(SUM(CASE WHEN STS.STATUS_GROUP IN ('Successful', 'Redirection') THEN FCT.REQUEST_CNT / 14.0 ELSE 0 END), 1) AS 'Success Requests per Day',
USG.USER_AGENT_NK AS 'Agent'
FROM FCT_ACCESS_USER_AGENT_DD FCT,
     DIM_USER_AGENT USG,
     DIM_HTTP_STATUS STS
WHERE FCT.DIM_USER_AGENT_ID = USG.DIM_USER_AGENT_ID
  AND FCT.DIM_HTTP_STATUS_ID = STS.DIM_HTTP_STATUS_ID
  AND USG.AGENT_BOT != 'n.a.'
  AND datetime(FCT.EVENT_DT, 'unixepoch') >= date('now', '-14 day')
GROUP BY USG.USER_AGENT_NK
ORDER BY 3 DESC
LIMIT 10

በዚህ ሁኔታ, የትንታኔው ውጤት በ robots.txt ፋይል ላይ በመጨመር የጣቢያው መዳረሻን ለመገደብ ውሳኔ ነበር.

User-agent: AhrefsBot
Disallow: /
User-agent: dotbot
Disallow: /
User-agent: bingbot
Crawl-delay: 5

የመጀመሪያዎቹ ሁለት ቦቶች ከጠረጴዛው ላይ ጠፍተዋል, እና ኤምኤስ ሮቦቶች ከመጀመሪያው መስመሮች ወደ ታች ተንቀሳቅሰዋል.

ቀን እና ታላቅ እንቅስቃሴ ጊዜ

በትራፊክ መጨናነቅ ይታያል። እነሱን በዝርዝር ለማጥናት, የተከሰቱበትን ጊዜ ማጉላት አስፈላጊ ነው, እና ሁሉንም ሰዓቶች እና የጊዜ መለኪያዎችን ማሳየት አያስፈልግም. ይህ ዝርዝር ትንታኔ ካስፈለገ በምዝግብ ማስታወሻው ውስጥ የግለሰብ ጥያቄዎችን ማግኘት ቀላል ያደርገዋል።

የጣቢያ ስታቲስቲክስ እና የእርስዎ ትንሽ ማከማቻ

የ SQL መጠይቅ ሪፖርት

SELECT
1 AS 'Line: Day and Hour of Hits from Users and Bots',
strftime('%d.%m-%H', datetime(EVENT_DT, 'unixepoch')) AS 'Date Time',
HIB AS 'Bots, Hits',
HIU AS 'Users, Hits'
FROM (
	SELECT
	EVENT_DT,
	SUM(CASE WHEN AGENT_BOT!='n.a.' THEN LINE_CNT ELSE 0 END) AS HIB,
	SUM(CASE WHEN AGENT_BOT='n.a.' THEN LINE_CNT ELSE 0 END) AS HIU
	FROM FCT_ACCESS_REQUEST_REF_HH
	WHERE datetime(EVENT_DT, 'unixepoch') >= date('now', '-14 day')
	GROUP BY EVENT_DT
	ORDER BY SUM(LINE_CNT) DESC
	LIMIT 10
) ORDER BY EVENT_DT

በገበታው ላይ ከመጀመሪያው ቀን በጣም ንቁ የሆኑትን 11, 14 እና 20 ሰዓቶችን እናከብራለን. ነገር ግን በሚቀጥለው ቀን 13:XNUMX ላይ ቦቶች ንቁ ነበሩ.

አማካይ የዕለታዊ የተጠቃሚ እንቅስቃሴ በሳምንት

በእንቅስቃሴ እና በትራፊክ ነገሮችን በጥቂቱ አስተካክለናል። የሚቀጥለው ጥያቄ የተጠቃሚዎች እራሳቸው እንቅስቃሴ ነበር። ለእንደዚህ አይነት ስታቲስቲክስ, እንደ አንድ ሳምንት ያሉ ረጅም የመደመር ጊዜዎች ተፈላጊ ናቸው.

የጣቢያ ስታቲስቲክስ እና የእርስዎ ትንሽ ማከማቻ

የ SQL መጠይቅ ሪፖርት

SELECT
1 as 'Line: Average Daily User Activity by Week',
strftime('%W week', datetime(FCT.EVENT_DT, 'unixepoch')) AS 'Week',
ROUND(1.0*SUM(FCT.PAGE_CNT)/SUM(FCT.IP_CNT),1) AS 'Pages per IP per Day',
ROUND(1.0*SUM(FCT.FILE_CNT)/SUM(FCT.IP_CNT),1) AS 'Files per IP per Day'
FROM
  FCT_ACCESS_USER_AGENT_DD FCT,
  DIM_USER_AGENT USG,
  DIM_HTTP_STATUS HST
WHERE FCT.DIM_USER_AGENT_ID=USG.DIM_USER_AGENT_ID
  AND FCT.DIM_HTTP_STATUS_ID = HST.DIM_HTTP_STATUS_ID
  AND USG.AGENT_BOT='n.a.' /* users only */
  AND HST.STATUS_GROUP IN ('Successful') /* good pages */
  AND datetime(FCT.EVENT_DT, 'unixepoch') > date('now', '-3 month')
GROUP BY strftime('%W week', datetime(FCT.EVENT_DT, 'unixepoch'))
ORDER BY FCT.EVENT_DT

ሳምንታዊ ስታቲስቲክስ እንደሚያሳየው በአማካይ አንድ ተጠቃሚ በቀን 1,6 ገጾችን ይከፍታል። በዚህ ጉዳይ ላይ በእያንዳንዱ ተጠቃሚ የተጠየቁ ፋይሎች ብዛት በጣቢያው ላይ አዳዲስ ፋይሎችን በመጨመር ላይ ይወሰናል.

ሁሉም ጥያቄዎች እና ሁኔታዎቻቸው

Webalizer ሁልጊዜ የተወሰኑ የገጽ ኮዶችን ያሳያል እና ሁልጊዜ የተሳካላቸው ጥያቄዎችን እና ስህተቶችን ቁጥር ማየት እፈልግ ነበር።

የጣቢያ ስታቲስቲክስ እና የእርስዎ ትንሽ ማከማቻ

የ SQL መጠይቅ ሪፖርት

SELECT
1 as 'Line: All Requests by Status',
strftime('%d.%m', datetime(FCT.EVENT_DT, 'unixepoch')) AS 'Day',
SUM(CASE WHEN STS.STATUS_GROUP='Successful' THEN FCT.REQUEST_CNT ELSE 0 END) AS 'Success',
SUM(CASE WHEN STS.STATUS_GROUP='Redirection' THEN FCT.REQUEST_CNT ELSE 0 END) AS 'Redirect',
SUM(CASE WHEN STS.STATUS_GROUP='Client Error' THEN FCT.REQUEST_CNT ELSE 0 END) AS 'Customer Error',
SUM(CASE WHEN STS.STATUS_GROUP='Server Error' THEN FCT.REQUEST_CNT ELSE 0 END) AS 'Server Error'
FROM
  FCT_ACCESS_USER_AGENT_DD FCT,
  DIM_HTTP_STATUS STS
WHERE FCT.DIM_HTTP_STATUS_ID=STS.DIM_HTTP_STATUS_ID
  AND datetime(FCT.EVENT_DT, 'unixepoch') >= date('now', '-14 day')
GROUP BY strftime('%d.%m', datetime(FCT.EVENT_DT, 'unixepoch'))
ORDER BY FCT.EVENT_DT

ሪፖርቱ ጥያቄዎችን እንጂ ጠቅ ማድረጎችን አያሳይም፣ ከLINE_CNT በተለየ የREQUEST_CNT መለኪያው እንደ COUNT(DISTINCT STG.REQUEST_NK) ይሰላል። ግቡ ውጤታማ ክስተቶችን ማሳየት ነው, ለምሳሌ, MS bots poll the robots.txt ፋይል በቀን በመቶዎች ለሚቆጠሩ ጊዜያት እና, በዚህ ሁኔታ, እንደዚህ ያሉ ምርጫዎች አንድ ጊዜ ይቆጠራሉ. ይህ በግራፍ ውስጥ መዝለሎችን ለማለስለስ ያስችልዎታል።

ከግራፉ ውስጥ ብዙ ስህተቶችን ማየት ይችላሉ - እነዚህ የማይገኙ ገጾች ናቸው. የትንታኔው ውጤት ከርቀት ገፆች ማዞሪያዎች መጨመር ነበር.

መጥፎ ጥያቄዎች

ጥያቄዎችን በዝርዝር ለመመርመር, ዝርዝር ስታቲስቲክስን ማሳየት ይችላሉ.

የጣቢያ ስታቲስቲክስ እና የእርስዎ ትንሽ ማከማቻ

የ SQL መጠይቅ ሪፖርት

SELECT
  1 AS 'Table: Top Error Requests',
  REQ.REQUEST_NK AS 'Request',
  'Error' AS 'Request Status',
  ROUND(SUM(FCT.LINE_CNT) / 14.0, 1) AS 'Hits per Day',
  ROUND(SUM(FCT.IP_CNT) / 14.0, 1) AS 'IPs per Day',
  ROUND(SUM(FCT.BYTES)/1000 / 14.0, 1) AS 'KB per Day'
FROM
  FCT_ACCESS_REQUEST_REF_HH FCT,
  DIM_REQUEST_V_ACT REQ
WHERE FCT.DIM_REQUEST_ID = REQ.DIM_REQUEST_ID
  AND FCT.STATUS_GROUP IN ('Client Error', 'Server Error')
  AND datetime(FCT.EVENT_DT, 'unixepoch') >= date('now', '-14 day')
GROUP BY REQ.REQUEST_NK
ORDER BY 4 DESC
LIMIT 20

ይህ ዝርዝር ሁሉንም ጥሪዎች ይይዛል ፣ ለምሳሌ ፣ ለ / wp-login.php ጥያቄ በአገልጋዩ ጥያቄዎችን እንደገና ለመፃፍ ደንቦቹን በማስተካከል የአገልጋዩን ምላሽ ለእንደዚህ ያሉ ጥያቄዎች ማስተካከል እና ወደ መጀመሪያው ገጽ መላክ ይችላሉ።

ስለዚህ፣ በአገልጋይ ምዝግብ ማስታወሻ ፋይል ላይ የተመሰረቱ ጥቂት ቀላል ሪፖርቶች በጣቢያው ላይ ምን እየተከናወነ እንዳለ በትክክል የተሟላ ምስል ይሰጣሉ።

መረጃ እንዴት ማግኘት ይቻላል?

የስኩላይት ዳታቤዝ በቂ ነው። ሠንጠረዦችን እንፍጠር፡ የ ETL ሂደቶችን ለመመዝገብ ረዳት።

የጣቢያ ስታቲስቲክስ እና የእርስዎ ትንሽ ማከማቻ

ፒኤችፒን በመጠቀም የምዝግብ ማስታወሻ ፋይሎችን የምንጽፍበት የሠንጠረዥ ደረጃ። ሁለት አጠቃላይ ጠረጴዛዎች. በተጠቃሚ ወኪሎች ላይ ስታቲስቲክስ ያለው ዕለታዊ ሰንጠረዥ እንፍጠር እና ሁኔታን እንጠይቅ። በየሰዓቱ በጥያቄዎች ፣የሁኔታ ቡድኖች እና ወኪሎች ላይ ካለው ስታቲስቲክስ ጋር። አግባብነት ያላቸው መለኪያዎች አራት ጠረጴዛዎች.

ውጤቱ የሚከተለው የግንኙነት ሞዴል ነው-

የውሂብ ሞዴልየጣቢያ ስታቲስቲክስ እና የእርስዎ ትንሽ ማከማቻ

በስኩላይት ዳታቤዝ ውስጥ አንድ ነገር ለመፍጠር ስክሪፕት፡-

የዲዲኤል ነገር መፍጠር

DROP TABLE IF EXISTS DIM_USER_AGENT;
CREATE TABLE DIM_USER_AGENT (
  DIM_USER_AGENT_ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
  USER_AGENT_NK     TEXT NOT NULL DEFAULT 'n.a.',
  AGENT_OS          TEXT NOT NULL DEFAULT 'n.a.',
  AGENT_ENGINE      TEXT NOT NULL DEFAULT 'n.a.',
  AGENT_DEVICE      TEXT NOT NULL DEFAULT 'n.a.',
  AGENT_BOT         TEXT NOT NULL DEFAULT 'n.a.',
  UPDATE_DT         INTEGER NOT NULL DEFAULT 0,
  UNIQUE (USER_AGENT_NK)
);
INSERT INTO DIM_USER_AGENT (DIM_USER_AGENT_ID) VALUES (-1);

ደረጃ

የ access.log ፋይልን በተመለከተ ሁሉንም ጥያቄዎች ወደ ዳታቤዝ ማንበብ, መተንተን እና መጻፍ አስፈላጊ ነው. ይህ በቀጥታ የስክሪፕት ቋንቋን በመጠቀም ወይም sqlite መሳሪያዎችን በመጠቀም ሊከናወን ይችላል።

የምዝግብ ማስታወሻ ፋይል ቅርጸት:

//67.221.59.195 - - [28/Dec/2012:01:47:47 +0100] "GET /files/default.css HTTP/1.1" 200 1512 "https://project.edu/" "Mozilla/4.0"
//host ident auth time method request_nk protocol status bytes ref browser
$log_pattern = '/^([^ ]+) ([^ ]+) ([^ ]+) ([[^]]+]) "(.*) (.*) (.*)" ([0-9-]+) ([0-9-]+) "(.*)" "(.*)"$/';

ቁልፍ ስርጭት

ጥሬው መረጃ በመረጃ ቋቱ ውስጥ በሚሆንበት ጊዜ በመለኪያ ሠንጠረዦች ውስጥ የሌሉ ቁልፎችን መጻፍ ያስፈልግዎታል. ከዚያም የመለኪያዎችን ማመሳከሪያ መገንባት ይቻላል. ለምሳሌ በDIM_REFERRER ሠንጠረዥ ውስጥ ቁልፉ የሶስት መስኮች ጥምረት ነው።

የ SQL ቁልፍ ስርጭት ጥያቄ

/* Propagate the referrer from access log */
INSERT INTO DIM_REFERRER (HOST_NK, PATH_NK, QUERY_NK, UPDATE_DT)
SELECT
	CLS.HOST_NK,
	CLS.PATH_NK,
	CLS.QUERY_NK,
	STRFTIME('%s','now') AS UPDATE_DT
FROM (
	SELECT DISTINCT
	REFERRER_HOST AS HOST_NK,
	REFERRER_PATH AS PATH_NK,
	CASE WHEN INSTR(REFERRER_QUERY,'&sid')>0 THEN SUBSTR(REFERRER_QUERY, 1, INSTR(REFERRER_QUERY,'&sid')-1) /* отрезаем sid - специфика цмс */
	ELSE REFERRER_QUERY END AS QUERY_NK
	FROM STG_ACCESS_LOG
) CLS
LEFT OUTER JOIN DIM_REFERRER TRG
ON (CLS.HOST_NK = TRG.HOST_NK AND CLS.PATH_NK = TRG.PATH_NK AND CLS.QUERY_NK = TRG.QUERY_NK)
WHERE TRG.DIM_REFERRER_ID IS NULL

ወደ ተጠቃሚ ወኪል ሠንጠረዥ ማሰራጨት የቦት አመክንዮ ሊይዝ ይችላል፣ ለምሳሌ የስኩኤል ቅንጣቢ፡-


CASE
WHEN INSTR(LOWER(CLS.BROWSER),'yandex.com')>0
	THEN 'yandex'
WHEN INSTR(LOWER(CLS.BROWSER),'googlebot')>0
	THEN 'google'
WHEN INSTR(LOWER(CLS.BROWSER),'bingbot')>0
	THEN 'microsoft'
WHEN INSTR(LOWER(CLS.BROWSER),'ahrefsbot')>0
	THEN 'ahrefs'
WHEN INSTR(LOWER(CLS.BROWSER),'mj12bot')>0
	THEN 'majestic-12'
WHEN INSTR(LOWER(CLS.BROWSER),'compatible')>0 OR INSTR(LOWER(CLS.BROWSER),'http')>0
	OR INSTR(LOWER(CLS.BROWSER),'libwww')>0 OR INSTR(LOWER(CLS.BROWSER),'spider')>0
	OR INSTR(LOWER(CLS.BROWSER),'java')>0 OR INSTR(LOWER(CLS.BROWSER),'python')>0
	OR INSTR(LOWER(CLS.BROWSER),'robot')>0 OR INSTR(LOWER(CLS.BROWSER),'curl')>0
	OR INSTR(LOWER(CLS.BROWSER),'wget')>0
	THEN 'other'
ELSE 'n.a.' END AS AGENT_BOT

የስብስብ ጠረጴዛዎች

በመጨረሻ ፣ የድምር ሰንጠረዦችን እንጭናለን ፣ ለምሳሌ ፣ የዕለት ተዕለት ጠረጴዛው እንደሚከተለው ሊጫን ይችላል ።

ድምርን ለመጫን የ SQL ጥያቄ

/* Load fact from access log */
INSERT INTO FCT_ACCESS_USER_AGENT_DD (EVENT_DT, DIM_USER_AGENT_ID, DIM_HTTP_STATUS_ID, PAGE_CNT, FILE_CNT, REQUEST_CNT, LINE_CNT, IP_CNT, BYTES)
WITH STG AS (
SELECT
	STRFTIME( '%s', SUBSTR(TIME_NK,9,4) || '-' ||
	CASE SUBSTR(TIME_NK,5,3)
	WHEN 'Jan' THEN '01' WHEN 'Feb' THEN '02' WHEN 'Mar' THEN '03' WHEN 'Apr' THEN '04' WHEN 'May' THEN '05' WHEN 'Jun' THEN '06'
	WHEN 'Jul' THEN '07' WHEN 'Aug' THEN '08' WHEN 'Sep' THEN '09' WHEN 'Oct' THEN '10' WHEN 'Nov' THEN '11'
	ELSE '12' END || '-' || SUBSTR(TIME_NK,2,2) || ' 00:00:00' ) AS EVENT_DT,
	BROWSER AS USER_AGENT_NK,
	REQUEST_NK,
	IP_NR,
	STATUS,
	LINE_NK,
	BYTES
FROM STG_ACCESS_LOG
)
SELECT
	CAST(STG.EVENT_DT AS INTEGER) AS EVENT_DT,
	USG.DIM_USER_AGENT_ID,
	HST.DIM_HTTP_STATUS_ID,
	COUNT(DISTINCT (CASE WHEN INSTR(STG.REQUEST_NK,'.')=0 THEN STG.REQUEST_NK END) ) AS PAGE_CNT,
	COUNT(DISTINCT (CASE WHEN INSTR(STG.REQUEST_NK,'.')>0 THEN STG.REQUEST_NK END) ) AS FILE_CNT,
	COUNT(DISTINCT STG.REQUEST_NK) AS REQUEST_CNT,
	COUNT(DISTINCT STG.LINE_NK) AS LINE_CNT,
	COUNT(DISTINCT STG.IP_NR) AS IP_CNT,
	SUM(BYTES) AS BYTES
FROM STG,
	DIM_HTTP_STATUS HST,
	DIM_USER_AGENT USG
WHERE STG.STATUS = HST.STATUS_NK
  AND STG.USER_AGENT_NK = USG.USER_AGENT_NK
  AND CAST(STG.EVENT_DT AS INTEGER) > $param_epoch_from /* load epoch date */
  AND CAST(STG.EVENT_DT AS INTEGER) < strftime('%s', date('now', 'start of day'))
GROUP BY STG.EVENT_DT, HST.DIM_HTTP_STATUS_ID, USG.DIM_USER_AGENT_ID

የስኩላይት ዳታቤዝ ውስብስብ መጠይቆችን እንድትጽፉ ይፈቅድልሃል። WITH የውሂብ እና ቁልፎችን ማዘጋጀት ይዟል. ዋናው መጠይቅ ሁሉንም የመጠን ማጣቀሻዎችን ይሰበስባል።

ሁኔታው ታሪኩን እንደገና መጫን አይፈቅድም፦ CAST(STG.EVENT_DT AS INTEGER) > $param_epoch_from፣ ልኬቱ የጥያቄው ውጤት የሆነበት
'COALESCE(MAX(EVENT_DT)፣'3600') እንደ LAST_EVENT_EPOCH ከFCT_ACCESS_USER_AGENT_DD ይምረጡ

ሁኔታው የሚጫነው ሙሉ ቀን ብቻ ነው፡CAST(STG.EVENT_DT AS INTEGER) <strftime('%s'፣ date('አሁን'፣ 'የቀኑ መጀመሪያ')))

ገጾችን ወይም ፋይሎችን መቁጠር በጥንታዊ መንገድ ይከናወናል, ነጥብን በመፈለግ.

ሪፖርቶች

በውስብስብ ምስላዊ ስርዓቶች ውስጥ, በመረጃ ቋቶች ላይ የተመሰረተ ሜታ-ሞዴል መፍጠር, ማጣሪያዎችን እና የመደመር ደንቦችን በተለዋዋጭ ማስተዳደር ይቻላል. በመጨረሻም፣ ሁሉም ጥሩ መሳሪያዎች የSQL ጥያቄ ያመነጫሉ።

በዚህ ምሳሌ ውስጥ፣ ዝግጁ የሆኑ የ SQL መጠይቆችን እንፈጥራለን እና በመረጃ ቋቱ ውስጥ እንደ እይታ እናስቀምጣቸዋለን - እነዚህ ሪፖርቶች ናቸው።

ምስላዊ

ብሉፍ፡ በጃቫስክሪፕት ውስጥ የሚያምሩ ግራፎች እንደ ምስላዊ መሳርያ ያገለግሉ ነበር።

ይህንን ለማድረግ ፒኤችፒን በመጠቀም ሁሉንም ሪፖርቶች ማለፍ እና የኤችቲኤምኤል ፋይል ከጠረጴዛዎች ጋር ማፍለቅ አስፈላጊ ነበር.

$sqls = array(
'SELECT * FROM RPT_ACCESS_USER_VS_BOT',
'SELECT * FROM RPT_ACCESS_ANNOYING_BOT',
'SELECT * FROM RPT_ACCESS_TOP_HOUR_HIT',
'SELECT * FROM RPT_ACCESS_USER_ACTIVE',
'SELECT * FROM RPT_ACCESS_REQUEST_STATUS',
'SELECT * FROM RPT_ACCESS_TOP_REQUEST_PAGE',
'SELECT * FROM RPT_ACCESS_TOP_REQUEST_REFERRER',
'SELECT * FROM RPT_ACCESS_NEW_REQUEST',
'SELECT * FROM RPT_ACCESS_TOP_REQUEST_SUCCESS',
'SELECT * FROM RPT_ACCESS_TOP_REQUEST_ERROR'
);

መሣሪያው የውጤት ሰንጠረዦችን በቀላሉ ያሳያል.

መደምደሚያ

የድር ትንተናን እንደ ምሳሌ በመጠቀም ጽሑፉ የመረጃ መጋዘኖችን ለመገንባት አስፈላጊ የሆኑትን ዘዴዎች ይገልጻል. ከውጤቶቹ እንደሚታየው, በጣም ቀላል የሆኑት መሳሪያዎች ጥልቅ ትንተና እና መረጃን ለማየት በቂ ናቸው.

ለወደፊቱ, ይህንን ማከማቻ እንደ ምሳሌ በመጠቀም, እንደ ልኬቶችን ቀስ በቀስ መቀየር, ሜታዳታ, የውህደት ደረጃዎች እና ከተለያዩ ምንጮች የተገኙ መረጃዎችን ማዋሃድ የመሳሰሉ መዋቅሮችን ለመተግበር እንሞክራለን.

እንዲሁም, በአንድ ጠረጴዛ ላይ በመመስረት የ ETL ሂደቶችን ለማስተዳደር በጣም ቀላሉ መሳሪያን በዝርዝር እንመልከት.

ወደ ዳታ ጥራት መለካት እና ይህን ሂደት ወደ ራስ-ሰር ወደሚለው ርዕስ እንመለስ።

የቴክኒካዊ አካባቢን ችግሮች እና የውሂብ ማከማቻዎችን ጥገና እናጠናለን, ለዚህም አነስተኛ ሀብቶች ያለው የማከማቻ አገልጋይን እንተገብራለን, ለምሳሌ, Raspberry Pi ላይ የተመሰረተ.

ምንጭ: hab.com

አስተያየት ያክሉ