如何用部门级服务器构建分析型CRM应用
2002/04/10
案例:某商业银行拥有约15万信用卡用户。为了增加持卡者的数量并提高现有卡用户的赢利水平,该银行决定通过一系列的营销活动来刺激、激励现有的信用卡用户,集中力量来提高其赢利能力。为了帮助营销人员加深对客户的了解,该银行决定实施一个分析型CRM系统来增强其商业智能。该系统将回答哪些客户产生了80%的交易量、平均透支额排名前N位的客户、交易最活跃的客户及找出最好的商户等等诸如此类的商业问题;并能根据营销活动的要求方便快速地抽取出客户名单。
由于系统需要存储所有信用卡用户5年的交易数据,多达1000多万条记录。IT人员认为如果选用Oracle作为数据库,支撑这样大的表需要采用高性能服务器和Oracle的Range分区机制才能保证性能,而且还需要耗费DBA的大量工作。为了保证查询的性能,同时降低硬件的成本,该行使用了NCR的S28部门级服务器和Teradata海量并行数据库来构建该系统。
系统实施后,达到了银行业务人员和IT人员的预期。业务人员很容易就找出了最有价值的客户和商户,并可以根据客户的任何属性和交易类指标对客户进行分组。系统能根据营销人员的要求抓取适当的客户名单并传送到Call Center用于特定的商业营销,如交叉销售和增量销售等。通过对促销客户进行跟踪,业务人员还开始对每次营销活动的成本和产出进行评估。IT人员曾经很担心千万条记录的交易表与客户和商户表的连接需要消耗很长时间,但是数据库独特的并行处理性能使最复杂的关联查询在2分钟内即可完成。同时,数据库的自我管理机制使得数据分配完全自动,避免了繁重的数据重组工作量。
以下给出系统是如何实现这些商业问题并帮助业务人员增进对其客户的了解。
数据库:bankpdata
涉及的数据表:
表 |
名称 |
记录数 |
dw_trans_cc |
信用卡交易流水表 |
1027万 |
dw_cardinfo_cc |
信用卡信息表 |
16万 |
dw_custinfo_cc |
信用卡客户信息表 |
15万 |
dw_merch |
信用卡特约商户信息表 |
5500 |
查询一:2001年7月份产生80%交易金额的客户名单,按倒序排列。
(结果发现客户数量仅占全部交易客户的15%)
SELECT AL3.card_no as card_no,
AL4.custom_no as custom_no,
AL5.custom_name as custom_name,
AL3.txn_amt as txn_amt,
CAST(AL3.csum_txn_amt/AL6.total_amt as decimal(18,2)) as bl,
AL3.rank_id as pm
FROM
(
SELECT AL2.card_no as card_no,
AL2.txn_amt as txn_amt,
AL2.rank_id as rank_id,
CAST(CSUM(CAST(AL2.txn_amt as decimal(18,2)),AL2.rank_id) as decimal(18,2)) as csum_txn_amt
FROM
(
SELECT AL1.card_no AS card_no,
AL1.txn_amt AS txn_amt,
rank(AL1.txn_amt) AS rank_id
FROM (select card_no as card_no,
sum(abs(txn_amt)) as txn_amt
from bankpdata.dw_trans_cc
where CAST(trans_date AS CHAR(11)) LIKE '%200107%'
group by 1
)AL1
)AL2
) AL3,
( SELECT CAST(sum(abs(txn_amt)) as decimal(18,2)) as total_amt
from bankpdata.dw_trans_cc
where CAST(trans_date AS CHAR(11)) LIKE '%200107%'
)AL6,
bankpdata.dw_cardinfo_cc AL4,
bankpdata.dw_custinfo_cc AL5
WHERE (AL3.card_no = AL4.card_no) AND (AL4.custom_no = AL5.custom_no)
and bl < 0.8
ORDER BY 6;
查询二:2001年3月到8月期间每个月交易金额都在前六十名的客户名单
这些客户名单定期地传送到该行的一个Call Center,用于相关促销活动和提升客户忠诚度和服务水平。
SELECT customer.custom_name , sex,contact_addr,contact_tel,email
FROM
(SELECT ALT2.account0 acct,
count(*) mycount
FROM
(SELECT account0,
mymonth,
amount
FROM
(SELECT account0,
substring(cast(trans_date as char(8) ),1, 6) as mymonth,
sum(txn_amt) as amount
FROM bankpdata.dw_trans_cc
WHERE mymonth in ('200103', '200104', '200105', '200106', '200107', '200108' )
GROUP BY 1, 2) ALT1
GROUP BY mymonth
QUALIFY rank(amount) <= 60) ALT2
GROUP BY 1
HAVING count(*) = 6) ALT3,
bankpdata.dw_cardinfo_cc card,
bankpdata.dw_custinfo_cc customer
WHERE ALT3.acct = card.account0
AND card.custom_no = customer.custom_no
查询三:交易金额前二十名帐户在那些商户做交易?
SELECT DISTINCT shop.merch_name, tran.account0
FROM bankpdata.dw_trans_cc tran
LEFT JOIN bankpdata.dw_merch shop
ON tran.shop_no = shop.merch_no
JOIN
(SELECT ALT1.account0
FROM
(SELECT account0, sum(txn_amt) as amount
FROM bankpdata.dw_trans_cc
group by account0) ALT1
QUALIFY rank(ALT1.amount) <= 20 ) ALT2
ON tran.account0 = ALT2.account0
ORDER BY 2;
该行的信用卡营销部门通过对这个分析型CRM系统的使用,有效地定位了目标客户群;其营销活动的回应率从7%上升至24%。同时,通过对高利润客户的回报,客户忠诚度和服务水平显著提高。该行还准备进一步细分其客户群体,开发出新的有针对性的信用卡品种。其长远目标是不断争取新客户的同时,最大限度地扩大每个持卡者的贡献。
计算机世界网 2002/04/10
商网通CRM企业解决方案 2002-04-10 |
金蝶电力行业解决方案 2002-04-09 |
PowerCRM全程跟踪房地产业客户信息 2002-04-02 |
SoftFactory CRM for SFA3.0简介 2002-04-01 |
东进技术CRM入编《客户关系管理成功案例》 2002-03-29 |