| | 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 | }}} |