рдЫрддреНрддрд╛ рдмрдирд╛рдо рд╕реБрдЕрд░ред рдореБрдЭреЗ рдИрдЯреАрдПрд▓ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП?

рдЫрд╡рд┐

рдПрдХ рджрд┐рди рдЦреЛрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдкрд╛рдВрдЪ рдорд┐рдирдЯ рдореЗрдВ рдЙрдбрд╝рд╛рди рднрд░реЗрдВ





рд╣рд╛рдп рд╕рд╛рдерд┐рдпреЛрдВ!

рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ Hadoop рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рдореЗрдВ Hive рдФрд░ Pig рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреИрд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпреЗ рджреЛ рд╕рдорд╛рди рдЙрддреНрдкрд╛рдж рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рд╣реА рд▓рдХреНрд╖реНрдп рд╣реИ - MapReduce рдХреЗ рд╕рдВрдкреВрд░реНрдг рддрдХрдиреАрдХреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рд╕рд╛рд░ рд╕реНрддрд░ рдкрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдирдореВрдиреЗ рдЗрди рджреЛ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдХреИрд╕реЗ рджрд┐рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред



рдордзреБрдореБрдЦреА рдХрд╛ рдЫрддреНрддрд╛



рддреЛ, рдЪрд▓реЛ рд╣рд╛рдЗрд╡ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ SQL-рдЬреИрд╕реА HQL рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░рд┐рдЪрд┐рдд рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╣рдо рдПрдХ рдирд┐рдпрдорд┐рдд рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдереЗред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрдВрд╕реЛрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рдЫрддреНрддрд╛ рд╣реИ:



рдЫрддреНрддрд╛ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ:





рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг:

--  . (  ) CREATE EXTERNAL TABLE win_bids_log ( date_field string, request_id string, user_ssp_id string, dsp_id string, win_price int ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LOCATION 'hdfs://inpit/bid-logs'; CREATE EXTERNAL TABLE win_bids_by_dsp ( dsp_id string, win_bids_cout int, win_price int ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE LOCATION ''hdfs://output/win-bids-by-dsp''; INSERT OVERWRITE TABLE win_bids_by_dsp SELECT dsp_id, COUNT(dsp_id), SUM(win_price) FROM win_bids_log GROUP BY dsp_id;
      
      





рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдПрдХ рдкрд░рд┐рдЪрд┐рдд рднрд╛рд╖рд╛ рдореЗрдВ рдкреНрд░рд╢реНрди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдЦреБрд╢реА рддрдм рддрдХ рдЬрд╛рд░реА рд░рд╣рддреА рд╣реИ рдЬрдм рддрдХ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред



рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ:

 INSERT OVERWRITE TABLE movieapp_log_stage SELECT * FROM ( SELECT custid, movieid, CASE WHEN genreid > 0 THEN genreid ELSE -1 END genreid, time, CAST((CASE recommended WHEN 'Y' THEN 1 ELSE 0 END) AS INT) recommended, activity, CAST(null AS INT) rating, price FROM movieapp_log_avro WHERE activity IN (2,4,5,11) UNION ALL SELECT m1.custid, m1.movieid, CASE WHEN m1.genreid > 0 THEN m1.genreid ELSE -1 END genreid, m1.time, CAST((CASE m1.recommended WHEN 'Y' THEN 1 ELSE 0 END) AS INT) recommended, m1.activity, m1.rating, CAST(null as float) price FROM movieapp_log_avro m1 JOIN ( SELECT custid,movieid, CASE WHEN genreid > 0 THEN genreid ELSE -1 END genreid,MAX(time) max_time, activity FROM movieapp_log_avro GROUP BY custid, movieid, genreid, activity ) m2 ON ( m1.custid = m2.custid AND m1.movieid = m2.movieid AND m1.genreid = m2.genreid AND m1.time = m2.max_time AND m1.activity = 1 AND m2.activity = 1 ) ) union_result;
      
      







рдмреЗрд╢рдХ рдЖрдк рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рдкрд╣рдЪрд╛рдирдиреЗ рд▓рд╛рдпрдХ рд╣реИ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрджреЗрд╢ рдХреА рдХрдореА рд╣реИред рдпрд╣ рд╕рдм рдЕрд▓рдорд╛рд░рд┐рдпреЛрдВ рдкрд░ рд░рдЦреЛ, рд▓реЗрдХрд┐рди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рдеред рд╣реИ рдирд╛?



рдХреБрд▓:



рдЫрддреНрддрд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ:





рдЫрддреНрддрд╛ рд╡рд┐рдкрдХреНрд╖:





рд╕реВрдЕрд░





рдЕрдм рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рд╕реБрдЕрд░ рдХреАред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рднрд╛рд╖рд╛ рдкрд┐рдЧ рд▓реИрдЯрд┐рди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреБрдЫ рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред

рдЪрд▓рд┐рдП рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╣рд╛рдЗрд╡ рд╕реЗ рдЕрдВрддрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ



рд╕реБрдЕрд░ рд╣реИ:



рд╕реБрдЕрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ:



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реБрдЕрд░ рд╣рд╛рдЗрд╡ рдХреЗ рд╕рдорд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдВрддрд░ рдХреЗрд╡рд▓ рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдФрд░ рднрд╛рд╖рд╛ рдореЗрдВ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдареАрдХ рдпрд╣реА рдЕрдВрддрд░ рд╣реИ рдЬреЛ рд╕реБрдЕрд░ рдХреЛ рдПрдХ рдирдП рд╕реНрддрд░ рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред



рдЪрд▓реЛ рд╕реБрдЕрд░ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред

рдпрд╣ рдврд╛рдВрдЪрд╛ рд╡рд┐рд╢реЗрд╖ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдЯрдкрд▓ рдФрд░ рдмреИрдЧред





рд╕реБрдЕрд░ рд▓реИрдЯрд┐рди рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдп:



рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ рдХрд┐ рдЖрдк рд╕реБрдЕрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдХреИрд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо RTB рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреА рд▓реЙрдЧ рдлрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдбреЗрдЯрд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЧрдП рд╣реИрдВ:



рд╕реБрдЕрд░ - рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ (рд▓реЛрдб)



рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП LOAD рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рд╡рд┐рднрд╛рдЬрдХ рд╡рд░реНрдг 't' рдФрд░ рдбреЗрдЯрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдЖрдк рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред

 --   HDFS (Pig   Hadoop) fs -rm -f -r -skipTrash /data/pig/out --    'raw_data' raw_data = LOAD '/data/pig/example/' USING PigStorage('\t') AS (time, bid_id, user_id, dsp_id, bid:int);
      
      





рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╣рдореЗрдВ рдРрд╕реА рд╕рдВрд░рдЪрдирд╛ рдорд┐рд▓рддреА рд╣реИ (рдЯреНрдпреВрдкрд▓)ред рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ, рдЗрд╕рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдПрдХ рдбреЙрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: raw_data.dsp_id

 raw_data -> tuple   . ------------------------------------------------------------------------------------------- time, bid_id, user_id, dsp_id, bid ------------------------------------------------------------------------------------------- (2014.02.14 14:08:27.711, 56949, 45234534553459, DSP-2, 12) (2014.02.14 14:08:28.712, 61336, 45221696259999, DSP-1, 56) (2014.02.14 14:08:29.713, 74685, 45221699381039, DSP-2, 89) (2014.02.14 14:08:30.714, 56949, 45221695781716, DSP-1, 21) (2014.02.14 14:08:25.715, 27617, 45221682863705, DSP-3, 22)
      
      





рд╕реБрдЕрд░ - Iterative рдбрд╛рдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ (рдкреВрд░реНрд╡ - рд╕рд╛рдорд╛рдиреНрдп)

FOREACH - GENERATE рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ "рд░рди" рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдСрдкрд░реЗрд╢рди рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдмрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рднреЗрдЬрддрд╛ рд╣реИ, рдЬреЛ рд╕рдм рдХреБрдЫ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

 -- .  timestamp   SUBSTRING norm_data = FOREACH raw_data GENERATE SUBSTRING(time, 0,10) AS date, dsp_id, bid;
      
      





рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╣рдореЗрдВ рдПрдХ рд╣реА рд╕реЗрдЯ рдорд┐рд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЫрдВрдЯрдиреА рдХреА рддрд╛рд░реАрдЦ рдХреЗ рд╕рд╛рде, рдФрд░ рдХреЗрд╡рд▓ рджреЛ рдлрд╝реАрд▓реНрдб: dsp_id, рдмреЛрд▓реАред



 norm_data -> tuple       --------------------------------------- date, dsp_id, bid --------------------------------------- (2014.02.14, DSP-2, 12) (2014.02.14, DSP-1, 56) (2014.02.14, DSP-2, 89) (2014.02.14, DSP-1, 21)
      
      





рд╕реБрдЕрд░ - рдбреЗрдЯрд╛ рдЧреНрд░реБрдкрд┐рдВрдЧ (рдЧреНрд░реБрдк)

рдЧреНрд░реБрдк - рдЖрдкрдХреЛ рдПрдХ рдЧреИрд░-рддреБрдЪреНрдЫ рд╕рдВрд░рдЪрдирд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реБрдП, рд╕рдореВрд╣ рдбреЗрдЯрд╛ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

 --  dsp_id  date group_norm_data = GROUP norm_data BY (dsp_id, date);
      
      





рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдЙрдЯрдкреБрдЯ рдкрд░:

рдПрдХ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдореВрд╣ред рдпрд╣ рд╕рдореВрд╣ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдФрд░ norm_data рдХреЗ рд╕рд╛рде рдЙрдкрд╕рд░реНрдЧреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣

 group_norm_data -> (  ) : [ (norm_data), (norm_data) ] ---------------------------------------------------------------------------------- ( group), array of norm_data ---------------------------------------------------------------------------------- ( (DSP-1, 2014.02.14), {(2014.02.14, DSP-1, 56), (2014.02.14, DSP-1, 21)} ) ( (DSP-1, 2014.02.17), {(2014.02.17, DSP-1, 34), (2014.02.17, DSP-1, 24)} ) ( (DSP-2, 2014.02.14), {(2014.02.14, DSP-2, 89), (2014.02.14, DSP-2, 12)} )
      
      





рд╕реБрдЕрд░ - рд╕рдордЧреНрд░ рдЭрд╛рдбрд╝реВ (FLATTEN)

рдХрднреА-рдХрднреА рдПрдХ рд░реЗрдЦреАрдп рд╕рдВрд░рдЪрдирд╛ ("рд╕реАрдзрд╛") рдореЗрдВ рд╕рдореБрдЪреНрдЪрдп рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдлреНрд▓реИрдЯрди рдлрд╝рдВрдХреНрд╢рди рд╣реИред

 --      ft_group_norm_data = FOREACH group_norm_data GENERATE FLATTEN(group), FLATTEN(norm_data);
      
      





рдПрдХ рдЬрдЯрд┐рд▓ рд╕рдореВрд╣реАрдХреГрдд рд╕рдВрд░рдЪрдирд╛ рд╕реЗ, рд╣рдореЗрдВ рдЯреБрдкрд▓реНрд╕ рдХрд╛ рд╕реАрдзрд╛ рд╕реЗрдЯ рдорд┐рд▓рддрд╛ рд╣реИред

 ft_group_norm_data -> tuple    ---------------------------------------------------------------------- dsp_id, date date dsp_id bid ----------------------------------------------------------------------- (DSP-1, 2014.02.14, 2014.02.14, DSP-1, 56) (DSP-1, 2014.02.14, 2014.02.14, DSP-1, 21) (DSP-1, 2014.02.15, 2014.02.15, DSP-1, 15) (DSP-1, 2014.02.15, 2014.02.15, DSP-1, 31)
      
      





рд╕реБрдЕрд░ - рдПрдХрддреНрд░реАрдХрд░рдг рдХрд╛рд░реНрдп (SUM)

рдХреБрдЫ рдЧрд┐рдирддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдмреЛрд▓реАрджрд╛рддрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рджреИрдирд┐рдХ рджрд╛рдВрд╡ рдХреА рд░рд╛рд╢рд┐ред

 --   ,    sum_bids_dsp = FOREACH group_norm_data GENERATE group, SUM(norm_data.bid) AS bids_sum;
      
      







 sum_bids_dsp ->  : bids_sum ------------------------------------------------------ group, bids_sum ------------------------------------------------------ ( (DSP-1, 2014.02.16), 82) ( (DSP-1, 2014.02.17), 58) ( (DSP-2, 2014.02.14), 101) ( (DSP-2, 2014.02.16), 58)
      
      





рд╕реБрдЕрд░ - рдЧреНрд░реБрдк рд╕рднреА

рдПрдХ рдирдореВрдиреЗ рдореЗрдВ "рд░рд┐рдХреЙрд░реНрдб" рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдЕрдХреНрд╕рд░ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИред рдмрд╕ рдЪрдпрди рдореЗрдВ COUNT рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╕рдореВрд╣ рдореЗрдВ рдзреНрд╡рд╕реНрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдПрдХрддреНрд░реАрдХрд░рдг рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

 --  ,   . --      . group_all = GROUP sum_bids_dsp ALL;
      
      







рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдореВрд╣ рд╣реИ - "рд╕рднреА" рдФрд░ рд╕рднреА рдкрд┐рдЫрд▓реА рдЗрдХрд╛рдЗрдпреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ред

 ( all, { ((DSP-1,2014.02.14),77), ((DSP-1,2014.02.15),67), ((DSP-1,2014.02.16),82),((DSP-1,2014.02.17),58),((DSP-2,2014.02.14),101),((DSP-2,2014.02.16),58),((DSP-2,2014.02.17),123),((DSP-3,2014.02.14),22),((DSP-3,2014.02.15),109),((DSP-3,2014.02.16),136),((DSP-3,2014.02.17),81) } )
      
      





рдЕрдм рд░рд╛рд╢рд┐ рдФрд░ рд░рд╛рд╢рд┐ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ

 summary = FOREACH group_all GENERATE COUNT(sum_bids_dsp), SUM(sum_bids_dsp.bids_sum);
      
      





рдирд┐рдХрд╛рд╕

 ------------------------------------------------------ count, sum ------------------------------------------------------ (11, 914)
      
      





рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдПред рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЛ рдПрдХ рдХреНрд░рдордмрджреНрдз рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рдЖрд╕рд╛рдиреА рд╕реЗ рдЪрд░рдгреЛрдВ рдореЗрдВ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рдХреБрд▓:



рд╕реБрдЕрд░ рдкреЗрд╢реЗрд╡рд░реЛрдВ:



рд╕реБрдЕрд░ рд╡рд┐рдкрдХреНрд╖:



рд╕рд╛рд░рд╛рдВрд╢:





рдпрджрд┐ рдЖрдк рдФрд░ рдЖрдкрдХреЗ рд╕рд╣рдХрд░реНрдореА SQL рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рд░реЛрдЬрд╛рдирд╛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк рдЙрдЧреНрд░ рд╕рд╡рд╛рд▓реЛрдВ рд╕реЗ рд╢рд░реНрдорд┐рдВрджрд╛ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╣рд╛рдЗрд╡ рдПрдХ рдмреЗрд╣рддрд░реАрди рдЙрдкрд╛рдп рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрдк рдХрднреА-рдХрднреА SQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХрд╛ рдбреЗрдЯрд╛ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд╕рд░рд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рджрд┐рди рдмрд┐рддрд╛рдиреЗ рдФрд░ рд╕реБрдЕрд░ рдХреЛ рдЫрд╛рдВрдЯрдиреЗ рд▓рд╛рдпрдХ рд╣реИред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдпрд╣ рдЖрдкрдХреЗ рд╕рдордп рдФрд░ рдЖрдкрдХреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЛ рдмрдЪрд╛ рд╕рдХрддрд╛ рд╣реИред



All Articles