← Analytics / analytics / graphql-api / features
Datasety (tabulky)
Cloudflare Analytics nabízí řadu datasetů, obecných i specifických pro jednotlivé produkty. Názvy datasetů se řídí jednotným schématem, které jasně určuje typ vracených dat:
-
Doména - Každý dataset je pojmenován podle pole, které popisuje, a je přiřazen k sadě uzlů. Uzly dat specifické pro daný produkt obsahují název příslušného produktu, například
loadBalancingRequests*uzly. -
Adaptivní vzorkování - Uzly představující data získaná pomocí adaptivního vzorkování obsahují
Adaptivepříponu. Další podrobnosti najdete v vzorkování. -
Agregovaná data - Uzly představující agregovaná data zahrnují
Groupspříponu. NapříkladloadBalancingRequestsAdaptiveGroupsuzel představuje agregovaná data pro požadavky Load Balancing. Agregovaná data se vrací v poli...Groupobjektů. Upozorňujeme, že máme uzel, který je z této konvence pojmenování v současnosti vyloučen:workersInvocationsAdaptive(beta). -
Syrová (raw) data - Uzly se surovými daty, například
loadBalancingRequestsAdaptive, nejsou agregována, a proto nezahrnujíGroupspříponu. Syrová (raw) data se vrací v polích obsahujících objekty příslušného datového typu. Například dotaz naloadBalancingRequestsAdaptivevrací řaduLoadBalancingRequestobjekty.
Další informace o datových sadách, jejich dostupnosti, stavu beta a ukončování podpory najdete v dokumentaci GraphQL discovery funkce.
Práce s datovými sadami
Agregovaná pole
Tento příklad znázorňuje strukturu pro Groups:
type WhateverGroup {
count # No subfields, it is just the group size. Not available for roll-up tables.
sum {
# fields that support summing (numbers, maps of numbers)
}
avg {
# fields that support averaging (numbers)
}
uniq {
# fields that support uniqueing (numbers, strings, enums, IPs, dates, etc.)
}
}Unikátní hodnoty nejsou dostupné jako dimenze, ale lze je dotazovat, jak ukazuje tento příklad:
{
# Get number of bytes and unique IPs in each minute.
httpRequests1mGroups {
sum {
bytes
}
uniq {
uniques # unique IPs
}
dimensions {
datetimeMinute
}
}
# Count the number of events in each hour.
firewallEventsAdaptiveGroups {
count
dimensions {
datetimeHour
}
}
}Definice typů schématu
Každá zpřístupněná tabulka má definici typu GraphQL. Definice typů se řídí těmito pravidly:
- Běžná pole reprezentují sama sebe.
- Každé pole, včetně vnořených polí, má typ a představuje seznam hodnot tohoto typu.
-
enumtyp představuje výčtové pole.
Zde je příklad definice typu pro ContentTypeMapElem:
type ContentTypeMapElem {
edgeResponseContentType: UInt32!
requests: UInt64!
bytes: UInt64!
}
# An array of httpRequestsGroup is the result of httpRequests1hGroups or
# httpRequests1mGroups query.
type httpRequestsGroup {
date: Date!
timeslot: DateTime!
requests: UInt64!
contentTypeMap: [ContentTypeMapElem!]!
# ... other fields
}
enum TrustedClientCategory {
UNKNOWN
REAL_BROWSER
HONEST_BOT
}
# An array of Request is the result of httpRequests query.
type Request {
trustedClientCategory: TrustedClientCategory!
# ... other fields
}