Вход собранной в автономном режиме схема обработки --2. Очистка данных Расчет и

Подключен к статье, в этой статье улей, связанные очистки искусства и рассчитан для выполнения данных

Помещение для хранения. Сырая информация журнала

Таблица улей поддерживает регулярные выражения, как хранить и читать следующим образом:

CREATE EXTERNAL TABLE nginxlog ( 
  IP - STRING, 
  времени загустевания, 
  строку запроса, 
  статус STRING, 
  размер STRING, 
  Referer STRING, 
  агент STRING) 
ROW FORMAT SERDE ' org.apache.hadoop.hive.serde2.RegexSerDe ' 
С SERDEPROPERTIES ( 
  "input.regex" = "( [ ^ ] * ) (\\ [ [^ \\ ] ] * \\]) (\" [ ^ \ " ] * \") ( - | [ 0-9 ] * ) ( - |[ 0-9 ] * ) (\ " [ ^ ] * \ ") (\" [ ^ \\\" ] * \ ")" 
) 
ЗАПОМНЕННЫЙ AS TEXTFILE МЕСТА '/ тест';

Наш формат данных журнала access.log выглядит следующим образом:

192.168.111.1 [29 / Июль / 2019: 19: 58: 55 +0800] «GET /big.png?url=http://127.0.0.1/a.html&urlname=a.html&scr=1366x768&ce=1&cnv=0.6735760053703803&ref= http://127.0.0.1/b.html&stat_uv=67256303183188720208&stat_ss=6553789412_7_1564401535833 HTTP / 1.0" 200 37700 "http://127.0.0.1/a.html" «Mozilla / 5.0 (Windows NT, 10,0; WOW64) AppleWebKit / 537,36 (KHTML , как Gecko) Chrome / 63.0.3239.132 Safari / 537,36"

Так построить регулярное выражение заявление таблицы 

([^] *) (\\ [[^ \\]] * \\]) (\ "[^ \"] * \ «) (- | [0-9] *) (- | [0-9 ] *) (\ "[^] * \") (\ "[^ \\\"] * \ «) и выше , должны соответствовать данным, в 
первую очередь должны понять это регулярные выражения в каждом пакете значение:
  ([^] *) // который соответствует любому символу, кроме пространства, в выражении ^ кронштейна, она не принимает время он представляет собой набор символов.
   (- | [0-9] *)   // указывает на совпадение - или более цифр от 0 до 9
  (\ «[^ \\\»] * \ «)   // \» представляет собой фактическую двойную кавычку перед кавычками \ символ язык Java, чтобы избежать кавычек двойных после этого, типа не имеет ничего общего с положительным 

( \\ [[^ \\]] * \\]) //
\\ [к обычному типу \ [, то есть, фактический левый кронштейн положительный знак в формуле

Кроме того улого формального применения до этого регулярного типа, предпочтительно в блок тестового кода проверки JAAV из:

@Test
     общественности  недействительным TestLog () { 

        Строка регулярное выражение = "(([^] *) (\\ [[^ \\]] * \\]) (\" [^ \ "] * \") (- | [ 0-9] *) (- | [0-9] *) (\ "[^] * \") (\ "[^ \\\"] * \ "))" , 
        шаблон шаблон = Pattern.compile ( REGEX);
        Строка данных = "192.168.111.1 [21 / Jul- / 2019: 15: 53: 07 +0800}] \" ГЭТ /favicon.ico на HTTP / 1.1 \ "404 555 \" http://192.168.111.123/ \ "\" Mozilla / 5.0 (Windows NT 10,0; WOW64) AppleWebKit / 537,36 (KHTML, как Gecko) Chrome / 70.0.3538.67 Safari / 537.36 \ "" ; 
        Сличитель Сличитель = Pattern.matcher (данные);
         
     // Примечание: матчи () метод , чтобы соответствовать всей строке , представленной, найти () метод может быть представлен путем сопоставления подстроки
ПЧА (Matcher. матчи ()) { для (INT = 0; г <matcher.groupCount (); я ++ ) { System.out.println (matcher.group (я + 1 )); } } Еще { System.out.println ( "ничего не найдено% п." ); } }

 

 
 

 

 

 

Вторичная переработка сырья информация журнала -> промежуточная обработка данных генерируется

 

 

 

III. Показатели KPI производят окончательные статистические данные из промежуточной обработки данных

 

рекомендация

отwww.cnblogs.com/hzhuxin/p/11266385.html