|
1 | 1 | CREATE TABLE IF NOT EXISTS logs.access_logs |
2 | 2 | ( |
3 | 3 | -- Common |
4 | | - timestamp DateTime, |
5 | 4 | insertedAt DateTime DEFAULT now(), |
6 | | - hostname LowCardinality(String), |
| 5 | + hostname LowCardinality(Nullable(String)), |
7 | 6 |
|
8 | 7 | -- AWS access server logs fields https://docs.aws.amazon.com/AmazonS3/latest/userguide/LogFormat.html |
9 | 8 | startTime DateTime64(3), -- AWS "Time" field |
10 | | - requester String, |
11 | | - operation String, |
12 | | - requestURI String, |
13 | | - errorCode String, |
14 | | - objectSize UInt64, |
15 | | - totalTime Float32, |
16 | | - turnAroundTime Float32, |
17 | | - referer String, |
18 | | - userAgent String, |
19 | | - versionId String, |
20 | | - signatureVersion LowCardinality(String), |
21 | | - cipherSuite LowCardinality(String), |
22 | | - authenticationType LowCardinality(String), |
23 | | - hostHeader String, |
24 | | - tlsVersion LowCardinality(String), |
25 | | - aclRequired LowCardinality(String), |
| 9 | + requester Nullable(String), |
| 10 | + operation Nullable(String), |
| 11 | + requestURI Nullable(String), |
| 12 | + errorCode Nullable(String), |
| 13 | + objectSize Nullable(UInt64), |
| 14 | + totalTime Nullable(Float32), |
| 15 | + turnAroundTime Nullable(Float32), |
| 16 | + referer Nullable(String), |
| 17 | + userAgent Nullable(String), |
| 18 | + versionId Nullable(String), |
| 19 | + signatureVersion LowCardinality(Nullable(String)), |
| 20 | + cipherSuite LowCardinality(Nullable(String)), |
| 21 | + authenticationType LowCardinality(Nullable(String)), |
| 22 | + hostHeader Nullable(String), |
| 23 | + tlsVersion LowCardinality(Nullable(String)), |
| 24 | + aclRequired LowCardinality(Nullable(String)), |
26 | 25 |
|
27 | 26 | -- Shared between AWS access server logs and Analytics logs |
28 | | - bucketOwner String, -- AWS "Bucket Owner" field |
29 | | - bucketName String, -- AWS "Bucket" field |
30 | | - req_id String, -- AWS "Request ID" field |
31 | | - bytesSent UInt64, -- AWS "Bytes Sent" field |
32 | | - clientIP String, -- AWS "Remote IP" field |
33 | | - httpCode UInt16, -- AWS "HTTP Status" field |
34 | | - objectKey String, -- AWS "Key" field |
| 27 | + bucketOwner Nullable(String), -- AWS "Bucket Owner" field |
| 28 | + bucketName String DEFAULT '', -- AWS "Bucket" field |
| 29 | + req_id String DEFAULT '', -- AWS "Request ID" field |
| 30 | + bytesSent Nullable(UInt64), -- AWS "Bytes Sent" field |
| 31 | + clientIP Nullable(String), -- AWS "Remote IP" field |
| 32 | + httpCode Nullable(UInt16), -- AWS "HTTP Status" field |
| 33 | + objectKey Nullable(String), -- AWS "Key" field |
35 | 34 |
|
36 | 35 | -- Scality server access logs extra fields. |
37 | | - logFormatVersion LowCardinality(String), |
38 | | - loggingEnabled Bool, |
39 | | - loggingTargetBucket String, |
40 | | - loggingTargetPrefix String, |
41 | | - awsAccessKeyID String, |
42 | | - raftSessionID UInt16 |
| 36 | + logFormatVersion LowCardinality(Nullable(String)), |
| 37 | + loggingEnabled Bool DEFAULT false, |
| 38 | + loggingTargetBucket String DEFAULT '', |
| 39 | + loggingTargetPrefix String DEFAULT '', |
| 40 | + awsAccessKeyID Nullable(String), |
| 41 | + raftSessionID UInt16 DEFAULT 0 |
43 | 42 | ) |
44 | 43 | Engine = MergeTree() |
45 | | -PARTITION BY toStartOfInterval(insertedAt, INTERVAL 24 HOUR) |
46 | | -ORDER BY (raftSessionID, bucketName, insertedAt, timestamp, req_id); |
| 44 | +PARTITION BY toStartOfInterval(insertedAt, INTERVAL 1 HOUR) |
| 45 | +ORDER BY (raftSessionID, bucketName, insertedAt, startTime, req_id); |
0 commit comments