Webalizer ۽ گوگل تجزياتي مون کي مدد ڪئي آهي بصيرت حاصل ڪرڻ ۾ جيڪي ويب سائيٽن تي ڪيترن ئي سالن کان ٿي رهيو آهي. هاڻي مان سمجهان ٿو ته اهي تمام گهٽ مفيد معلومات مهيا ڪن ٿا. توهان جي access.log فائل تائين رسائي حاصل ڪرڻ سان، انگن اکرن کي سمجهڻ ۽ ڪافي بنيادي اوزارن تي عمل ڪرڻ تمام آسان آهي، جهڙوڪ 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 بوٽس روز ۾ سوين ڀيرا 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 ڏانهن هڪ درخواست سرور پاران ٻيهر لکڻ جي قاعدن کي ترتيب ڏيڻ سان، توهان اهڙين درخواستن تي سرور جي رد عمل کي ترتيب ڏئي سگهو ٿا ۽ انهن کي شروعاتي صفحي ڏانهن موڪلي سگهو ٿا.
تنهن ڪري، سرور لاگ فائل جي بنياد تي ڪجھ سادي رپورٽون سائيٽ تي ڇا ٿي رهيو آهي جي مڪمل تصوير ڏيو.
معلومات ڪيئن حاصل ڪجي؟
هڪ sqlite ڊيٽابيس ڪافي آهي. اچو ته ٽيبل ٺاھيون: ETL عملن کي لاگ ان ڪرڻ لاءِ معاون.
ٽيبل اسٽيج جتي اسين پي ايڇ پي استعمال ڪندي لاگ فائلون لکنداسين. ٻه مجموعي ٽيبل. اچو ته يوزر ايجنٽن تي انگن اکرن سان گڏ روزانه ٽيبل ٺاهيون ۽ اسٽيٽس جي درخواست ڪريو. درخواستن تي انگن اکرن سان ڪلاڪ، اسٽيٽس گروپن ۽ ايجنٽ. لاڳاپيل ماپن جا چار جدول.
نتيجو هيٺ ڏنل تعلقي ماڊل آهي:
ڊيٽا ماڊل
sqlite ڊيٽابيس ۾ هڪ اعتراض ٺاهڻ لاء اسڪرپٽ:
DDL создание объекта
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
يوزر ايجنٽ ٽيبل تي پروپيگيشن بوٽ منطق تي مشتمل ٿي سگھي ٿي، مثال طور sql snippet:
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
sqlite ڊيٽابيس توهان کي پيچيده سوالن کي لکڻ جي اجازت ڏئي ٿي. WITH ڊيٽا ۽ ڪيچ جي تياري تي مشتمل آهي. مکيه سوال طول و عرض جي سڀني حوالن کي گڏ ڪري ٿو.
شرط تاريخ کي ٻيهر لوڊ ڪرڻ جي اجازت نه ڏيندو: CAST(STG.EVENT_DT AS INTEGER) > $param_epoch_from، جتي پيرا ميٽر درخواست جو نتيجو آهي
FCT_ACCESS_USER_AGENT_DD کان LAST_EVENT_EPOCH AS COALESCE(MAX(EVENT_DT)، '3600' چونڊيو
شرط صرف پورو ڏينهن لوڊ ڪندي: CAST(STG.EVENT_DT AS INTEGER) < strftime('%s', date('هاڻي'، 'ڏينهن جي شروعات'))
صفحن يا فائلن جي ڳڻپ هڪ ابتدائي طريقي سان ڪئي ويندي آهي، هڪ نقطي جي ڳولا ڪندي.
رپورٽون
پيچيده بصري نظام ۾، اهو ممڪن آهي ته ميٽا ماڊل ٺاهي، ڊيٽابيس جي شين جي بنياد تي، متحرڪ طور تي فلٽر ۽ مجموعي ضابطن کي منظم ڪن. بالآخر، سڀئي مهذب اوزار هڪ SQL سوال ٺاهيندا آهن.
هن مثال ۾، اسان تيار ڪيل SQL سوالن کي ٺاهينداسين ۽ انهن کي ڊيٽابيس ۾ نظرن جي طور تي محفوظ ڪنداسين - اهي رپورٽون آهن.
زير نظر
Bluff: جاوا اسڪرپٽ ۾ خوبصورت گراف هڪ بصري اوزار طور استعمال ڪيو ويو
هن کي ڪرڻ لاء، ضروري هو ته پي ايڇ پي استعمال ڪندي سڀني رپورٽن ذريعي وڃو ۽ ٽيبل سان گڏ هڪ html فائل ٺاهي.
$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 جي بنياد تي.
جو ذريعو: www.habr.com