Qhov chaw txheeb cais thiab koj tus kheej cia me me

Webalizer thiab Google Analytics tau pab kuv nkag siab txog qhov tshwm sim ntawm cov vev xaib tau ntau xyoo. Tam sim no kuv nkag siab tias lawv muab cov ntaub ntawv tseem ceeb tsawg heev. Muaj kev nkag mus rau koj cov ntaub ntawv access.log, nws yooj yim heev rau kev nkag siab cov txheeb cais thiab siv cov cuab yeej yooj yim, xws li sqlite, html, sql language thiab txhua yam lus sau ntawv.

Cov ntaub ntawv qhov chaw rau Webalizer yog lub server's access.log cov ntaub ntawv. Nov yog qhov nws cov tuav thiab cov lej zoo li, los ntawm qhov tsuas yog tag nrho cov ntim ntawm kev khiav tsheb yog qhov tseeb:

Qhov chaw txheeb cais thiab koj tus kheej cia me me
Qhov chaw txheeb cais thiab koj tus kheej cia me me
Cov cuab yeej xws li Google Analytics sau cov ntaub ntawv los ntawm nplooj ntawv thauj khoom lawv tus kheej. Lawv qhia peb ob peb daim duab thiab kab, raws li nws feem ntau nyuaj rau kos cov lus xaus. Tej zaum yuav tsum tau siv zog ntau dua? Tsis paub.

Yog li, kuv xav pom dab tsi hauv lub vev xaib tus neeg tuaj xyuas txheeb cais?

Cov neeg siv thiab bot tsheb

Feem ntau qhov chaw tsheb khiav yog txwv thiab nws yuav tsum tau saib seb yuav siv tau ntau npaum li cas. Piv txwv li, zoo li no:

Qhov chaw txheeb cais thiab koj tus kheej cia me me

SQL qhia query

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

Daim duab qhia txog kev ua haujlwm tas li ntawm bots. Nws yuav nthuav kom kawm paub meej txog cov neeg sawv cev tshaj plaws.

Kev ntxhov siab bots

Peb faib bots raws li tus neeg siv cov ntaub ntawv tus neeg sawv cev. Ntxiv cov txheeb cais ntawm kev khiav tsheb txhua hnub, tus naj npawb ntawm kev thov ua tiav thiab tsis ua tiav muab lub tswv yim zoo ntawm kev ua bot.

Qhov chaw txheeb cais thiab koj tus kheej cia me me

SQL qhia query

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

Hauv qhov no, qhov tshwm sim ntawm kev tshuaj xyuas yog qhov kev txiav txim siab txwv kev nkag mus rau qhov chaw los ntawm kev ntxiv rau hauv cov ntaub ntawv robots.txt

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

Thawj ob lub bots ploj mus ntawm lub rooj, thiab MS robots tau txav los ntawm thawj kab.

Hnub thiab lub sijhawm ua haujlwm loj tshaj plaws

Upswings yog pom nyob rau hauv lub tsheb. Yuav kom kawm paub meej lawv, nws yog ib qho tsim nyog los qhia txog lub sijhawm ntawm lawv qhov tshwm sim, thiab nws tsis yog qhov tsim nyog los tso saib tag nrho cov teev thiab hnub ntawm lub sijhawm ntsuas. Qhov no yuav ua rau nws yooj yim dua los nrhiav tus neeg thov hauv cov ntaub ntawv teev npe yog xav tau kev tshuaj xyuas ntxaws.

Qhov chaw txheeb cais thiab koj tus kheej cia me me

SQL qhia query

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

Peb saib cov sij hawm nquag tshaj plaws ntawm 11, 14 thiab 20 ntawm thawj hnub ntawm daim duab. Tab sis hnub tom qab thaum 13:XNUMX cov bots tau ua haujlwm.

Qhov nruab nrab cov neeg siv txhua hnub ua haujlwm los ntawm lub lim tiam

Peb txheeb tej yam me ntsis nrog kev ua si thiab kev khiav tsheb. Cov lus nug tom ntej yog kev ua ntawm cov neeg siv lawv tus kheej. Rau xws li kev txheeb cais, lub sijhawm sib sau ua ke ntev, xws li ib lub lim tiam, yog qhov xav tau.

Qhov chaw txheeb cais thiab koj tus kheej cia me me

SQL qhia query

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

Cov txheeb cais txhua lub limtiam qhia tau tias qhov nruab nrab ib tus neeg siv qhib 1,6 nplooj ntawv ib hnub. Tus naj npawb ntawm cov ntaub ntawv thov rau ib tus neeg siv qhov no nyob ntawm qhov sib ntxiv ntawm cov ntaub ntawv tshiab rau lub xaib.

Txhua qhov kev thov thiab lawv cov xwm txheej

Webalizer ib txwm pom cov nplooj ntawv tshwj xeeb thiab kuv ib txwm xav pom tsuas yog tus naj npawb ntawm kev thov ua tiav thiab yuam kev.

Qhov chaw txheeb cais thiab koj tus kheej cia me me

SQL qhia query

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

Daim ntawv tshaj tawm qhia txog kev thov, tsis yog nyem (ntaus), tsis zoo li LINE_CNT, REQUEST_CNT metric yog xam raws li COUNT(DISTINCT STG.REQUEST_NK). Lub hom phiaj yog los qhia cov xwm txheej zoo, piv txwv li, MS bots poll cov ntaub ntawv robots.txt ntau pua zaus hauv ib hnub thiab, qhov no, cov kev xaiv tsa no yuav raug suav ib zaug. Qhov no tso cai rau koj kom du tawm jumps hauv daim duab.

Los ntawm daim duab koj tuaj yeem pom ntau qhov yuam kev - cov no yog nplooj ntawv tsis muaj nyob. Qhov tshwm sim ntawm kev tsom xam yog qhov sib ntxiv ntawm redirects los ntawm tej thaj chaw deb nplooj ntawv.

Kev thov phem

Txhawm rau tshuaj xyuas cov lus thov kom ntxaws, koj tuaj yeem tso saib cov txheeb cais kom ntxaws.

Qhov chaw txheeb cais thiab koj tus kheej cia me me

SQL qhia query

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

Daim ntawv teev npe no tseem yuav muaj tag nrho cov kev hu, piv txwv li, thov rau /wp-login.php Los ntawm kev kho cov cai rau kev rov sau ntawv thov los ntawm tus neeg rau zaub mov, koj tuaj yeem kho tus neeg rau zaub mov cov lus teb rau cov lus thov thiab xa lawv mus rau nplooj ntawv pib.

Yog li, ob peb cov lus ceeb toom yooj yim raws li cov ntaub ntawv teev npe server muab cov duab ua tiav ntawm qhov tshwm sim ntawm qhov chaw.

Yuav tau txais cov ntaub ntawv li cas?

Ib sqlite database yog txaus. Cia peb tsim cov ntxhuav: pab rau kev nkag ETL cov txheej txheem.

Qhov chaw txheeb cais thiab koj tus kheej cia me me

Lub rooj theem uas peb yuav sau cov ntaub ntawv siv PHP. Ob lub rooj sib dhos. Cia peb tsim ib lub rooj txhua hnub nrog cov txheeb cais ntawm cov neeg siv cov neeg sawv cev thiab thov cov xwm txheej. Txhua teev nrog txheeb cais ntawm kev thov, pawg xwm txheej thiab cov neeg sawv cev. Plaub lub rooj ntawm qhov ntsuas ntsuas.

Qhov tshwm sim yog tus qauv kev sib raug zoo hauv qab no:

Cov ntaub ntawv qauvQhov chaw txheeb cais thiab koj tus kheej cia me me

Tsab ntawv los tsim ib qho khoom hauv sqlite database:

DDL khoom creation

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);

Theem

Nyob rau hauv rooj plaub ntawm cov ntaub ntawv access.log, nws yog ib qho tsim nyog yuav tsum nyeem, txheeb xyuas thiab sau tag nrho cov lus thov rau hauv cov ntaub ntawv. Qhov no tuaj yeem ua tiav ncaj qha siv cov lus sau lossis siv cov cuab yeej sqlite.

Log file format:

//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-]+) "(.*)" "(.*)"$/';

Kev nthuav dav tseem ceeb

Thaum cov ntaub ntawv nyoos nyob hauv cov ntaub ntawv, koj yuav tsum sau cov yuam sij uas tsis nyob ntawd rau hauv cov lus ntsuas. Tom qab ntawd nws yuav ua tau los tsim ib qho kev siv rau kev ntsuas. Piv txwv li, hauv DIM_REFERRER lub rooj, tus yuam sij yog kev sib txuas ntawm peb qhov chaw.

SQL tseem ceeb tshaj tawm lus nug

/* 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

Kev nthuav tawm rau tus neeg siv lub rooj yuav muaj bot logic, piv txwv li 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

Cov rooj sib dhos

Thaum kawg, peb yuav thauj cov rooj sib dhos; piv txwv li, lub rooj txhua hnub tuaj yeem thauj khoom raws li hauv qab no:

SQL lus nug rau loading aggregate

/* 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 database tso cai rau koj sau cov lus nug nyuaj. WITH muaj kev npaj cov ntaub ntawv thiab cov yuam sij. Cov lus nug tseem ceeb sau tag nrho cov ntawv xa mus rau qhov ntev.

Cov xwm txheej yuav tsis tso cai thauj cov keeb kwm rov qab: CAST(STG.EVENT_DT AS INTEGER) > $param_epoch_from, qhov twg qhov parameter yog qhov tshwm sim ntawm qhov kev thov
'SELECT COALESCE(MAX(EVENT_DT), '3600') AS LAST_EVENT_EPOCH FROM FCT_ACCESS_USER_AGENT_DD'

Cov xwm txheej yuav thauj khoom ib hnub nkaus xwb: CAST(STG.EVENT_DT AS INTEGER) < strftime('%s', date('now', 'start of day'))

Kev suav cov nplooj ntawv lossis cov ntaub ntawv yog ua tiav hauv txoj kev qub, los ntawm kev tshawb nrhiav qhov taw tes.

Tshaj tawm

Hauv cov txheej txheem pom kev nyuaj, nws muaj peev xwm tsim tau ib qho qauv meta-raws li cov khoom siv database, dynamically tswj cov lim dej thiab cov cai sib sau ua ke. Thaum kawg, tag nrho cov cuab yeej tsim nyog tsim cov lus nug SQL.

Hauv qhov piv txwv no, peb yuav tsim cov lus nug SQL npaj tau thiab txuag lawv raws li kev pom hauv cov ntaub ntawv - cov no yog cov lus ceeb toom.

Kev Pom Kev

Bluff: Cov duab zoo nkauj hauv JavaScript tau siv los ua cov cuab yeej pom

Txhawm rau ua qhov no, nws yuav tsum mus dhau tag nrho cov ntawv ceeb toom siv PHP thiab tsim cov ntaub ntawv html nrog cov ntxhuav.

$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'
);

Lub cuab yeej tsuas pom cov lus ntawm cov txiaj ntsig.

xaus

Siv lub vev xaib tsom xam ua piv txwv, tsab xov xwm piav qhia txog cov txheej txheem tsim nyog los tsim cov ntaub ntawv khaws cia. Raws li tuaj yeem pom los ntawm cov txiaj ntsig, cov cuab yeej yooj yim tshaj plaws yog txaus rau kev soj ntsuam tob thiab pom cov ntaub ntawv.

Nyob rau hauv lub neej yav tom ntej, siv qhov chaw cia khoom no ua piv txwv, peb yuav sim siv cov qauv xws li maj mam hloov qhov ntev, metadata, qib sib sau ua ke thiab kev koom ua ke ntawm cov ntaub ntawv los ntawm ntau qhov chaw.

Tsis tas li, cia peb saib ze dua ntawm cov cuab yeej yooj yim tshaj plaws rau kev tswj hwm cov txheej txheem ETL raws li ib lub rooj.

Cia peb rov qab mus rau lub ntsiab lus ntawm kev ntsuas cov ntaub ntawv zoo thiab automating txheej txheem no.

Peb yuav kawm txog cov teeb meem ntawm ib puag ncig kev lag luam thiab kev saib xyuas cov ntaub ntawv khaws cia, uas peb yuav siv lub chaw khaws cia nrog cov peev txheej tsawg, piv txwv li, raws li Raspberry Pi.

Tau qhov twg los: www.hab.com

Ntxiv ib saib