| 1 | {{{ |
| 2 | #!html |
| 3 | <div style="text-align: center; color:#151B8D"><big style="font-weight: bold;"><big><big> |
| 4 | 案例實務 |
| 5 | </big></big></big></div> <div style="text-align: center; color:#7E2217"><big style="font-weight: bold;"><big> |
| 6 | TCRC 餐廳 |
| 7 | </big></big></div> |
| 8 | }}} |
| 9 | [[PageOutline]] |
| 10 | |
| 11 | = 事先準備 = |
| 12 | |
| 13 | * 請先準備以下檔案 |
| 14 | * /tmp/TCRC/store.txt |
| 15 | {{{ |
| 16 | #!text |
| 17 | T01;GunLong; 01;20;40;30;50 |
| 18 | T02;Esing; 02;50 |
| 19 | T03;SunDon; 03;40;30 |
| 20 | T04;StarBucks; 04;50;50;20 |
| 21 | }}} |
| 22 | |
| 23 | * 請準備以下檔案,並將 income 資料夾上傳到hdfs |
| 24 | * /tmp/TCRC/income/0202.txt |
| 25 | {{{ |
| 26 | #!text |
| 27 | waue:T01:P1:xxxxx |
| 28 | jazz:T01:P2:xxxxx |
| 29 | lia:T01:P3:xxxxx |
| 30 | hung:T02:P1:xxxxx |
| 31 | lia:T04:P1:xxxxx |
| 32 | lia:T04:P1:xxxxx |
| 33 | hung:T04:P3:xxxxx |
| 34 | hung:T04:P2:xxxxx |
| 35 | }}} |
| 36 | * /tmp/TCRC/income/0203.txt |
| 37 | {{{ |
| 38 | #!text |
| 39 | xxx:T01:P4:xxxxx |
| 40 | ooo:T02:P1:xxxxx |
| 41 | oo:T03:P1:xxxxx |
| 42 | xxx:T03:P1:xxxxx |
| 43 | aaa:T03:P1:xxxxx |
| 44 | }}} |
| 45 | |
| 46 | [raw-attachment:wiki:NCHCCloudCourse100204:TCRCHBase_100204.jar 可用 TCRCHBase_100204.jar 作此範例測試] |
| 47 | |
| 48 | == 假設: == |
| 49 | |
| 50 | 目前有四間商店進駐TCRC餐廳,分別為 |
| 51 | |
| 52 | 位在第1區的GunLong,品項4項單價為<20,40,30,50> |
| 53 | |
| 54 | 第2區的ESing,品項1項單價為<50> |
| 55 | |
| 56 | 第3區的SunDon,品項2項單價為<40,30> |
| 57 | |
| 58 | 第4區的StarBucks,品項3項單價為<50,50,20> |
| 59 | |
| 60 | |
| 61 | == 1. 建立商店資料 == |
| 62 | |
| 63 | [wiki:waue/2010/0205-01 TCRC1LoadFile.java ], |
| 64 | |
| 65 | || || Detail || Detail || Products || Products || Products || Products || Turnover || |
| 66 | || || Name || Locate || P1 || P2 || P3 || P4|| || |
| 67 | || T01 || Gun-Long || 01 || 20 || 40 || 30 || 50 || || |
| 68 | || T02 || ESing || 02 || 50 || || || || || |
| 69 | || T03 || Sun-Don || 03 || 40 || 30 || || || || |
| 70 | || T04 || Star Bucks || 04 || 50 || 50 || || || || |
| 71 | |
| 72 | {{{ |
| 73 | $ /opt/hadoop/bin/hadoop jar TCRCHBase_100204.jar TCRC1LoadFile |
| 74 | }}} |
| 75 | |
| 76 | {{{ |
| 77 | create new table: TCRC |
| 78 | Put data :"GunLong" to Table: TCRC's Detail:Name |
| 79 | Put data :"01" to Table: TCRC's Detail:Locate |
| 80 | Put data :"20" to Table: TCRC's Products:P1 |
| 81 | Put data :"40" to Table: TCRC's Products:P2 |
| 82 | Put data :"30" to Table: TCRC's Products:P3 |
| 83 | Put data :"50" to Table: TCRC's Products:P4 |
| 84 | |
| 85 | Put data :"Esing" to Table: TCRC's Detail:Name |
| 86 | Put data :"02" to Table: TCRC's Detail:Locate |
| 87 | Put data :"50" to Table: TCRC's Products:P1 |
| 88 | |
| 89 | Put data :"SunDon" to Table: TCRC's Detail:Name |
| 90 | Put data :"03" to Table: TCRC's Detail:Locate |
| 91 | Put data :"40" to Table: TCRC's Products:P1 |
| 92 | Put data :"30" to Table: TCRC's Products:P2 |
| 93 | |
| 94 | Put data :"StarBucks" to Table: TCRC's Detail:Name |
| 95 | Put data :"04" to Table: TCRC's Detail:Locate |
| 96 | Put data :"50" to Table: TCRC's Products:P1 |
| 97 | Put data :"50" to Table: TCRC's Products:P2 |
| 98 | Put data :"20" to Table: TCRC's Products:P3 |
| 99 | |
| 100 | }}} |
| 101 | |
| 102 | == 2 計算單月每個品項的購買次數 == |
| 103 | |
| 104 | [wiki:waue/2010/0205-02 TCRC2Count.java] , |
| 105 | |
| 106 | {{{ |
| 107 | $ /opt/hadoop/bin/hadoop jar TCRCHBase_100204.jar TCRC2Count |
| 108 | }}} |
| 109 | |
| 110 | || || Detail ||Detail || Products || Products||Products || Products|| Turnover || Turnover || Turnover || Turnover || || |
| 111 | || || Name || Locate || P1 || P2 || P3 || P4|| P1 || P2 || P3 || P4 || || |
| 112 | || T01 || Gun-Long || 01 || 20 || 40 || 30 || 50 || 1 || 1 || 1 || 1 || || |
| 113 | || T02 || ESing || 02 || 50 || || || ||2 || || || || || |
| 114 | || T03 || Sun-Don || 03 || 40 || 30 || || ||3 || || || || || |
| 115 | || T04 || Star Bucks || 04 || 50 || 50 || || ||2 || 1 || 1 || || || |
| 116 | |
| 117 | {{{ |
| 118 | > scan 'TCRC' |
| 119 | ROW COLUMN+CELL |
| 120 | T01 column=Detail:Locate, timestamp=1265184360616, value=01 |
| 121 | T01 column=Detail:Name, timestamp=1265184360548, value=GunLong |
| 122 | T01 column=Products:P1, timestamp=1265184360694, value=20 |
| 123 | T01 column=Products:P2, timestamp=1265184360758, value=40 |
| 124 | T01 column=Products:P3, timestamp=1265184360815, value=30 |
| 125 | T01 column=Products:P4, timestamp=1265184360866, value=50 |
| 126 | T01 column=Turnover:P1, timestamp=1265187021528, value=1 |
| 127 | T01 column=Turnover:P2, timestamp=1265187021528, value=1 |
| 128 | T01 column=Turnover:P3, timestamp=1265187021528, value=1 |
| 129 | T01 column=Turnover:P4, timestamp=1265187021528, value=1 |
| 130 | T02 column=Detail:Locate, timestamp=1265184360951, value=02 |
| 131 | T02 column=Detail:Name, timestamp=1265184360910, value=Esing |
| 132 | T02 column=Products:P1, timestamp=1265184361051, value=50 |
| 133 | T02 column=Turnover:P1, timestamp=1265187021528, value=2 |
| 134 | T03 column=Detail:Locate, timestamp=1265184361124, value=03 |
| 135 | T03 column=Detail:Name, timestamp=1265184361098, value=SunDon |
| 136 | T03 column=Products:P1, timestamp=1265184361189, value=40 |
| 137 | T03 column=Products:P2, timestamp=1265184361259, value=30 |
| 138 | T03 column=Turnover:P1, timestamp=1265187021529, value=3 |
| 139 | T04 column=Detail:Locate, timestamp=1265184361311, value=04 |
| 140 | T04 column=Detail:Name, timestamp=1265184361287, value=StarBucks |
| 141 | T04 column=Products:P1, timestamp=1265184361343, value=50 |
| 142 | T04 column=Products:P2, timestamp=1265184361386, value=50 |
| 143 | T04 column=Products:P3, timestamp=1265184361422, value=20 |
| 144 | T04 column=Turnover:P1, timestamp=1265187021529, value=2 |
| 145 | T04 column=Turnover:P2, timestamp=1265187021529, value=1 |
| 146 | T04 column=Turnover:P3, timestamp=1265187021529, value=1 |
| 147 | 4 row(s) in 0.0310 seconds |
| 148 | |
| 149 | }}} |
| 150 | |
| 151 | |
| 152 | |
| 153 | |
| 154 | == 3. 計算當天營業額 == |
| 155 | |
| 156 | [wiki:waue/2010/0205-03 TCRC3CalculateMR.java], |
| 157 | |
| 158 | {{{ |
| 159 | $ /opt/hadoop/bin/hadoop jar TCRCHBase_100204.jar TCRC3CalculateMR |
| 160 | }}} |
| 161 | |
| 162 | || || Detail || Detail || Products || Products|| Products || Products || Turnover || Turnover || Turnover || Turnover || Turnover || |
| 163 | || || Name || Locate || P1 || P2 || P3 || P4|| P1 || P2 || P3 || P4 || Sum || |
| 164 | || T01 || Gun-Long || 01 || 20 || 40 || 30 || 50 || 1 || 1 || 1 || 1 || 140 || |
| 165 | || T02 || ESing || 02 || 50 || || || ||2 || || || || 100 || |
| 166 | || T03 || Sun-Don || 03 || 40 || 30 || || ||3 || || || || 120 || |
| 167 | || T04 || Star Bucks || 04 || 50 || 50 || || ||2 || 1 || 1 || || 170 || |
| 168 | |
| 169 | |
| 170 | {{{ |
| 171 | > scan ‘TCRC’ |
| 172 | ROW COLUMN+CELL |
| 173 | T01 column=Detail:Locate, timestamp=1265184360616, value=01 |
| 174 | T01 column=Detail:Name, timestamp=1265184360548, value=GunLong |
| 175 | T01 column=Products:P1, timestamp=1265184360694, value=20 |
| 176 | T01 column=Products:P2, timestamp=1265184360758, value=40 |
| 177 | T01 column=Products:P3, timestamp=1265184360815, value=30 |
| 178 | T01 column=Products:P4, timestamp=1265184360866, value=50 |
| 179 | T01 column=Turnover:P1, timestamp=1265187021528, value=1 |
| 180 | T01 column=Turnover:P2, timestamp=1265187021528, value=1 |
| 181 | T01 column=Turnover:P3, timestamp=1265187021528, value=1 |
| 182 | T01 column=Turnover:P4, timestamp=1265187021528, value=1 |
| 183 | T01 column=Turnover:sum, timestamp=1265190421993, value=140 |
| 184 | T02 column=Detail:Locate, timestamp=1265184360951, value=02 |
| 185 | T02 column=Detail:Name, timestamp=1265184360910, value=Esing |
| 186 | T02 column=Products:P1, timestamp=1265184361051, value=50 |
| 187 | T02 column=Turnover:P1, timestamp=1265187021528, value=2 |
| 188 | T02 column=Turnover:sum, timestamp=1265190421993, value=100 |
| 189 | T03 column=Detail:Locate, timestamp=1265184361124, value=03 |
| 190 | T03 column=Detail:Name, timestamp=1265184361098, value=SunDon |
| 191 | T03 column=Products:P1, timestamp=1265184361189, value=40 |
| 192 | T03 column=Products:P2, timestamp=1265184361259, value=30 |
| 193 | T03 column=Turnover:P1, timestamp=1265187021529, value=3 |
| 194 | T03 column=Turnover:sum, timestamp=1265190421993, value=120 |
| 195 | T04 column=Detail:Locate, timestamp=1265184361311, value=04 |
| 196 | T04 column=Detail:Name, timestamp=1265184361287, value=StarBucks |
| 197 | T04 column=Products:P1, timestamp=1265184361343, value=50 |
| 198 | T04 column=Products:P2, timestamp=1265184361386, value=50 |
| 199 | T04 column=Products:P3, timestamp=1265184361422, value=20 |
| 200 | T04 column=Turnover:P1, timestamp=1265187021529, value=2 |
| 201 | T04 column=Turnover:P2, timestamp=1265187021529, value=1 |
| 202 | T04 column=Turnover:P3, timestamp=1265187021529, value=1 |
| 203 | T04 column=Turnover:sum, timestamp=1265190421993, value=170 |
| 204 | 4 row(s) in 0.0460 seconds |
| 205 | |
| 206 | }}} |
| 207 | |
| 208 | == 4. 建立索引資料表 == |
| 209 | [wiki:waue/2010/0205-04 TCRC4SortTurnover.java] |
| 210 | |
| 211 | {{{ |
| 212 | $ /opt/hadoop/bin/hadoop jar TCRCHBase_100204.jar TCRC4SortTurnover |
| 213 | }}} |
| 214 | |
| 215 | {{{ |
| 216 | > scan 'TCRC-Sum' |
| 217 | ROW COLUMN+CELL |
| 218 | 100T02 column=Turnover:Sum, timestamp=1265190782127, value=100 |
| 219 | 100T02 column=__INDEX__:ROW, timestamp=1265190782127, value=T02 |
| 220 | 120T03 column=Turnover:Sum, timestamp=1265190782128, value=120 |
| 221 | 120T03 column=__INDEX__:ROW, timestamp=1265190782128, value=T03 |
| 222 | 140T01 column=Turnover:Sum, timestamp=1265190782126, value=140 |
| 223 | 140T01 column=__INDEX__:ROW, timestamp=1265190782126, value=T01 |
| 224 | 170T04 column=Turnover:Sum, timestamp=1265190782129, value=170 |
| 225 | 170T04 column=__INDEX__:ROW, timestamp=1265190782129, value=T04 |
| 226 | 4 row(s) in 0.0140 seconds |
| 227 | |
| 228 | }}} |
| 229 | |
| 230 | == 4.b 產生最終報表 == |
| 231 | |
| 232 | {{{ |
| 233 | $ /opt/hadoop/bin/hadoop jar TCRCHBase_100204.jar TCRC5ShowReport 130 |
| 234 | }}} |
| 235 | |
| 236 | {{{ |
| 237 | #!text |
| 238 | SunDon 's turnover is 120 $. |
| 239 | GunLong 's turnover is 140 $. |
| 240 | StarBucks 's turnover is 170 $. |
| 241 | }}} |