سائٹ کے اعدادوشمار اور آپ کا اپنا چھوٹا ذخیرہ

Webalizer اور Google Analytics نے کئی سالوں سے ویب سائٹس پر کیا ہو رہا ہے اس کے بارے میں بصیرت حاصل کرنے میں میری مدد کی ہے۔ اب میں سمجھ گیا ہوں کہ وہ بہت کم مفید معلومات فراہم کرتے ہیں۔ آپ کی access.log فائل تک رسائی کے بعد، اعداد و شمار کو سمجھنا اور کافی بنیادی ٹولز، جیسے کہ sqlite، html، sql زبان اور کسی بھی اسکرپٹنگ پروگرامنگ زبان کو لاگو کرنا بہت آسان ہے۔

Webalizer کے لیے ڈیٹا سورس سرور کی access.log فائل ہے۔ اس کے بار اور نمبر اس طرح نظر آتے ہیں، جس سے صرف ٹریفک کا کل حجم واضح ہے:

سائٹ کے اعدادوشمار اور آپ کا اپنا چھوٹا ذخیرہ
سائٹ کے اعدادوشمار اور آپ کا اپنا چھوٹا ذخیرہ
گوگل تجزیات جیسے ٹولز لوڈ شدہ صفحہ سے خود ڈیٹا اکٹھا کرتے ہیں۔ وہ ہمیں کچھ خاکے اور لائنیں دکھاتے ہیں، جن کی بنیاد پر درست نتیجہ اخذ کرنا اکثر مشکل ہوتا ہے۔ شاید مزید کوشش کرنی چاہیے تھی؟ نہیں معلوم۔

تو، میں ویب سائٹ کے وزیٹر کے اعدادوشمار میں کیا دیکھنا چاہتا تھا؟

صارف اور بوٹ ٹریفک

اکثر سائٹ کی ٹریفک محدود ہوتی ہے اور یہ دیکھنا ضروری ہوتا ہے کہ ٹریفک کتنی مفید ہو رہی ہے۔ مثال کے طور پر، اس طرح:

سائٹ کے اعدادوشمار اور آپ کا اپنا چھوٹا ذخیرہ

ایس کیو ایل رپورٹ کا استفسار

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

گراف بوٹس کی مستقل سرگرمی کو ظاہر کرتا ہے۔ یہ سب سے زیادہ فعال نمائندوں کا تفصیل سے مطالعہ کرنا دلچسپ ہوگا۔

پریشان کن بوٹس

ہم صارف ایجنٹ کی معلومات کی بنیاد پر بوٹس کی درجہ بندی کرتے ہیں۔ روزانہ ٹریفک کے اضافی اعدادوشمار، کامیاب اور ناکام درخواستوں کی تعداد بوٹ کی سرگرمی کا اچھا اندازہ لگاتی ہے۔

سائٹ کے اعدادوشمار اور آپ کا اپنا چھوٹا ذخیرہ

ایس کیو ایل رپورٹ کا استفسار

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

پہلے دو بوٹس میز سے غائب ہو گئے، اور MS روبوٹ پہلی لائنوں سے نیچے چلے گئے۔

سب سے بڑی سرگرمی کا دن اور وقت

ٹریفک میں اتار چڑھاؤ نظر آرہا ہے۔ ان کا تفصیل سے مطالعہ کرنے کے لیے، ان کے وقوع پذیر ہونے کے وقت کو نمایاں کرنا ضروری ہے، اور وقت کی پیمائش کے تمام گھنٹوں اور دنوں کو ظاہر کرنا ضروری نہیں ہے۔ اس سے لاگ فائل میں انفرادی درخواستوں کو تلاش کرنا آسان ہو جائے گا اگر تفصیلی تجزیہ کی ضرورت ہو۔

سائٹ کے اعدادوشمار اور آپ کا اپنا چھوٹا ذخیرہ

ایس کیو ایل رپورٹ کا استفسار

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 بجے بوٹس فعال تھے۔

ہفتے کے حساب سے صارف کی روزانہ کی اوسط سرگرمی

ہم نے سرگرمی اور ٹریفک کے ساتھ چیزوں کو تھوڑا سا حل کیا۔ اگلا سوال خود صارفین کی سرگرمی کا تھا۔ اس طرح کے اعدادوشمار کے لیے، لمبے مجموعے کی مدت، جیسے ایک ہفتہ، مطلوبہ ہے۔

سائٹ کے اعدادوشمار اور آپ کا اپنا چھوٹا ذخیرہ

ایس کیو ایل رپورٹ کا استفسار

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 ہمیشہ مخصوص صفحہ کوڈ دکھاتا ہے اور میں ہمیشہ صرف کامیاب درخواستوں اور غلطیوں کی تعداد دیکھنا چاہتا تھا۔

سائٹ کے اعدادوشمار اور آپ کا اپنا چھوٹا ذخیرہ

ایس کیو ایل رپورٹ کا استفسار

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 فائل کو دن میں سینکڑوں بار پول کرتے ہیں اور اس صورت میں، ایسے پولز کو ایک بار شمار کیا جائے گا۔ یہ آپ کو گراف میں چھلانگ کو ہموار کرنے کی اجازت دیتا ہے۔

گراف سے آپ بہت سی خرابیاں دیکھ سکتے ہیں - یہ غیر موجود صفحات ہیں۔ تجزیہ کا نتیجہ دور دراز کے صفحات سے ری ڈائریکٹ کا اضافہ تھا۔

بری درخواستیں۔

درخواستوں کو تفصیل سے جانچنے کے لیے، آپ تفصیلی اعدادوشمار دکھا سکتے ہیں۔

سائٹ کے اعدادوشمار اور آپ کا اپنا چھوٹا ذخیرہ

ایس کیو ایل رپورٹ کا استفسار

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 ڈیٹا بیس کافی ہے۔ آئیے ٹیبلز بنائیں: ای ٹی ایل کے عمل کو لاگ ان کرنے کے لیے معاون۔

سائٹ کے اعدادوشمار اور آپ کا اپنا چھوٹا ذخیرہ

ٹیبل اسٹیج جہاں ہم پی ایچ پی کا استعمال کرتے ہوئے لاگ فائلیں لکھیں گے۔ دو مجموعی میزیں۔ آئیے یوزر ایجنٹس کے اعدادوشمار کے ساتھ روزانہ کی میز بنائیں اور اسٹیٹس کی درخواست کریں۔ درخواستوں، اسٹیٹس گروپس اور ایجنٹس کے اعدادوشمار کے ساتھ فی گھنٹہ۔ متعلقہ پیمائش کی چار میزیں۔

نتیجہ مندرجہ ذیل رشتہ دار ماڈل ہے:

ڈیٹا ماڈلسائٹ کے اعدادوشمار اور آپ کا اپنا چھوٹا ذخیرہ

sqlite ڈیٹا بیس میں ایک آبجیکٹ بنانے کے لیے اسکرپٹ:

ڈی ڈی ایل آبجیکٹ کی تخلیق

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 ٹیبل میں، کلید تین فیلڈز کا مجموعہ ہے۔

ایس کیو ایل کلیدی پروپیگیشن استفسار

/* 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 کا ٹکڑا:


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 INTEGEER) > $param_epoch_from، جہاں پیرامیٹر درخواست کا نتیجہ ہے
FCT_ACCESS_USER_AGENT_DD سے 'COALESCE(MAX(EVENT_DT), '3600') LAST_EVENT_EPOCH کو منتخب کریں'

شرط صرف پورے دن لوڈ ہوگی: CAST(STG.EVENT_DT AS INTEGEER) <strftime('%s', date(' now', ' start of day'))

صفحات یا فائلوں کی گنتی ایک نقطہ کی تلاش کی طرف سے، ایک قدیم طریقے سے کیا جاتا ہے.

رپورٹس

پیچیدہ ویژولائزیشن سسٹمز میں، ڈیٹا بیس کی اشیاء پر مبنی میٹا ماڈل بنانا، فلٹرز اور ایگریگیشن رولز کو متحرک طور پر منظم کرنا ممکن ہے۔ بالآخر، تمام مہذب ٹولز ایک SQL استفسار پیدا کرتے ہیں۔

اس مثال میں، ہم ریڈی میڈ ایس کیو ایل سوالات بنائیں گے اور انہیں ڈیٹا بیس میں ویوز کے طور پر محفوظ کریں گے - یہ رپورٹس ہیں۔

تصور

بلف: جاوا اسکرپٹ میں خوبصورت گرافس کو ویژولائزیشن ٹول کے طور پر استعمال کیا گیا تھا۔

ایسا کرنے کے لیے ضروری تھا کہ پی ایچ پی کا استعمال کرتے ہوئے تمام رپورٹس کو دیکھیں اور ٹیبلز کے ساتھ ایک 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

نیا تبصرہ شامل کریں