在進行完了資料調研、需求分析、技術實現方案,進行資料設計。
資料設計,往往包含兩個環節:
在本專案中,我們所有的資料設計環節,只會涉及第二個,不會涉及第乙個。因為我們為了突出課程重點,也就是spark。所以主要還是集中在spark上面,就不要花時間去做hive etl了。設計mysql中的業務表的結構。
create table `session_aggr_stat` (
`task_id` int(11) not null,
`session_count` int(11) default null,
`1s_3s` double default null,
`4s_6s` double default null,
`7s_9s` double default null,
`10s_30s` double default null,
`30s_60s` double default null,
`1m_3m` double default null,
`3m_10m` double default null,
`10m_30m` double default null,
`30m` double default null,
`1_3` double default null,
`4_6` double default null,
`7_9` double default null,
`10_30` double default null,
`30_60` double default null,
`60` double default null,
primary key (`task_id`)
) engine=innodb default charset=utf8
create table `session_random_extract` (
`task_id` int(11) not null,
`session_id` varchar(255) default null,
`start_time` varchar(50) default null,
`end_time` varchar(50) default null,
`search_keywords` varchar(255) default null,
primary key (`task_id`)
) engine=innodb default charset=utf8
create table `top10_category` (
`task_id` int(11) not null,
`category_id` int(11) default null,
`click_count` int(11) default null,
`order_count` int(11) default null,
`pay_count` int(11) default null,
primary key (`task_id`)
) engine=innodb default charset=utf8
create table `top10_category_session` (
`task_id` int(11) no null,
`category_id` int(11) default null,
`session_id` varchar(255) default null,
`click_count` int(11) default null,
primary key (`task_id`)
) engine=innodb default charset=utf8
create table `session_detail` (
`task_id` int(11) not null,
`user_id` int(11) default null,
`session_id` varchar(255) default null,
`page_id` int(11) default null,
`action_time` varchar(255) default null,
`search_keyword` varchar(255) default null,
`click_category_id` int(11) default null,
`click_product_id` int(11) default null,
`order_category_ids` varchar(255) default null,
`order_product_ids` varchar(255) default null,
`pay_category_ids` varchar(255) default null,
`pay_product_ids` varchar(255) default null,
primary key (`task_id`)
) engine=innodb default charset=utf8
create table `task` (
`task_id` int(11) not null auto_increment,
`task_name` varchar(255) default null,
`create_time` varchar(255) default null,
`start_time` varchar(255) default null,
`finish_time` varchar(255) default null,
`task_type` varchar(255) default null,
`task_status` varchar(255) default null,
`task_param` text,
primary key (`task_id`)
) engine=innodb auto_increment=0 default charset=utf8
在資料設計以後,就正式進入乙個漫長的環節,就是編碼實現階段,coding階段。在編碼實現階段,每開發完乙個功能,其實都會走後續的兩個環節,就是本地測試和生產環境測試。
大家需要在windows上面,自己安裝mysql資料庫。然後本地測試的時候,將資料插入本地的mysql中。
接下來,就是在完成了資料調研、需求分析、技術方案設計、資料設計以後,正式進入編碼實現和功能測試階段。最後才是效能調優階段。
資料表設計
資料表設計 三大正規化 第一正規化 列的原子性,每一列是不可再拆分的 若是還要查詢省份或地區,則該錶有誤,不滿足第一正規化,則應 第二正規化 表裡面的每一列都應與主鍵有關 範例 品種列亂入不和主鍵有關係,不滿足第二正規化 科考,人員代號和科目代號為聯合主鍵,姓名雖與人員代號有關,但在成績表出來前人的...
quartz設計資料表
qrtz calendars 以 blob 型別儲存 quartz 的 calendar 資訊 qrtz cron triggers 儲存 cron trigger,包括 cron 表示式和時區資訊 qrtz fired triggers 儲存與已觸發的 trigger 相關的狀態資訊,以及相聯 j...
設計資料表結構
需注意點 1,新建表時,記得在其它表新建 外來鍵 xx id,關聯新錶id 遇到的麻煩 1.1,專案中早期設計時候沒有建立外來鍵id,在新增的需求中,又需要該id去獲取關聯表的字段資料 之後,在entity裡新建變數,對映成欄位。再補了差不多一天的外來鍵資料,稍微慶幸資料不多 1.2,新開發乙個模組...