Пример #1
0
        //private static string tableName = "mainpageview";

        /// <summary>
        /// 用户的来访日志
        ///
        /// create 'mpv','m'
        /// </summary>
        /// <param name="userid"></param>
        /// <param name="toid"></param>
        /// <param name="dt"></param>
        public static void MainPageview(string userid, string toid, DateTime dt)
        {
            if (!Config.IsUseHbase)
            {
                return;
            }

            string tableName = "mpv";

            using (var hclient = HBaseClientPool.GetHclient())
            {
                string desctime = H.Comm.TimeUtility.DescTimeStamp(dt).ToString();

                string rowkey = H.Comm.StringUtility.FixedLenString(userid, 20)
                                + H.Comm.StringUtility.FixedLenString(toid, 20)
                                + desctime;

                hclient.Client.mutateRow(tableName.ToBytes(), rowkey.ToBytes(),
                                         new List <Apache.Hadoop.Hbase.Mutation> {
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "m:uid".ToBytes(), Value = userid.ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "m:tid".ToBytes(), Value = toid.ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "m:dt".ToBytes(), Value = dt.ToString().ToBytes()
                    }
                });
            }
        }
Пример #2
0
        /// <summary>
        /// 用户给某个游戏评价多少分
        /// </summary>
        /// <param name="userid"></param>
        /// <param name="gameid"></param>
        /// <param name="point"></param>
        public static void Games(string userid, string gameid, double point, DateTime ratingtime)
        {
            string tableName = "gameratings";

            using (var hclient = HBaseClientPool.GetHclient())
            {
                string strtime = H.Comm.TimeUtility.DescTimeStamp(ratingtime).ToString();
                string row     = H.Comm.StringUtility.FixedLenString(userid, 20) + strtime;

                hclient.Client.mutateRow(tableName.ToBytes(), row.ToBytes(),
                                         new List <Apache.Hadoop.Hbase.Mutation> {
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "u:uid".ToBytes(), Value = userid.ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "u:gid".ToBytes(), Value = gameid.ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "u:lt".ToBytes(), Value = ratingtime.ToString().ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "u:pnt".ToBytes(), Value = point.ToString().ToBytes()
                    }
                });
            }
        }
Пример #3
0
        public static void UserContent(string uid, string content, DateTime dt)
        {
            if (!Config.IsUseHbase)
            {
                return;
            }

            string tableName = "usercontent";

            using (var hclient = HBaseClientPool.GetHclient())
            {
                string strtime = H.Comm.TimeUtility.DescTimeStamp(dt).ToString();
                string row     = H.Comm.StringUtility.FixedLenString(uid, 20) + strtime;

                hclient.Client.mutateRow(tableName.ToBytes(), row.ToBytes(),
                                         new List <Apache.Hadoop.Hbase.Mutation> {
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "c:uid".ToBytes(), Value = uid.ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "c:content".ToBytes(), Value = content.ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "c:dt".ToBytes(), Value = dt.ToString().ToBytes()
                    }
                });
            }
        }
Пример #4
0
        /// <summary>
        /// 将日志插入 hbase
        /// row {u:uid,u:ip,u:lt,u:r}
        ///
        /// hbase script: create 'loginlog','u'
        /// </summary>
        public static void AddLog(string userid, string ip, DateTime logintime, bool result)
        {
            if (!Config.IsUseHbase)
            {
                return;
            }

            using (var hclient = HBaseClientPool.GetHclient())
            {
                string strtime = H.Comm.TimeUtility.DescTimeStamp(logintime).ToString();
                string row     = H.Comm.StringUtility.FixedLenString(userid, 20) + strtime;

                hclient.Client.mutateRow(tableName.ToBytes(), row.ToBytes(),
                                         new List <Apache.Hadoop.Hbase.Mutation> {
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "u:uid".ToBytes(), Value = userid.ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "u:ip".ToBytes(), Value = ip.ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "u:lt".ToBytes(), Value = logintime.ToString().ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "u:r".ToBytes(), Value = Convert.ToInt16(result).ToString().ToBytes()
                    }
                });
            }
        }
Пример #5
0
        /// <summary>
        /// 用户的行为跟踪
        /// </summary>
        /// <param name="userid"></param>
        /// <param name="url"></param>
        /// <param name="dt"></param>
        /// <param name="toid"></param>
        public static void TrackeUserAction(string userid, string url, string referer, DateTime dt, string toid = "")
        {
            string tableName = "tracku";

            using (var hclient = HBaseClientPool.GetHclient())
            {
                string desctime = H.Comm.TimeUtility.DescTimeStamp(dt).ToString();

                string rowkey = H.Comm.StringUtility.FixedLenString(userid, 20)
                                + desctime;

                hclient.Client.mutateRow(tableName.ToBytes(), rowkey.ToBytes(),
                                         new List <Apache.Hadoop.Hbase.Mutation> {
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "t:uid".ToBytes(), Value = userid.ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "t:url".ToBytes(), Value = url.ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "t:dt".ToBytes(), Value = dt.ToString().ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "t:ref".ToBytes(), Value = referer.ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "t:toid".ToBytes(), Value = toid.ToBytes()
                    }
                });
            }
        }
Пример #6
0
        public void v()
        {
            string tableName = "tracku";

            using (var hclient = HBaseClientPool.GetHclient())
            {
            }
        }
Пример #7
0
        // IPstat 表 : create 'ipstat','r'
        public static List <TRowResult> ScanIp(int top = 1000)
        {
            using (var hclient = HBaseClientPool.GetHclient())
            {
                var scanid = hclient.Client.scannerOpen("ipstat".ToBytes(), "192.".ToBytes(), new List <byte[]> {
                    "r".ToBytes()
                });

                var list = hclient.Client.scannerGetList(scanid, top);

                return(list);
            }
        }
Пример #8
0
        //这里加一行,测试一下提交变更


        //public static void PoolAddLog(string userid, string ip, DateTime logintime, bool result)
        //{
        //    using (var hclient = HBaseClientPool.GetHclient())
        //    {
        //        string strtime = H.Comm.TimeUtility.DescTimeStamp(logintime).ToString();
        //        string row = H.Comm.StringUtility.FixedLenString(userid, 20) + strtime;

        //        hclient.Client.mutateRow(tableName.ToBytes(), row.ToBytes(),
        //            new List<Apache.Hadoop.Hbase.Mutation> {
        //        new Apache.Hadoop.Hbase.Mutation{ Column= "u:uid".ToBytes(), Value = userid.ToBytes() },
        //        new Apache.Hadoop.Hbase.Mutation{ Column= "u:ip".ToBytes(), Value = ip.ToBytes() },
        //        new Apache.Hadoop.Hbase.Mutation{ Column= "u:lt".ToBytes(), Value = logintime.ToString().ToBytes() },
        //         new Apache.Hadoop.Hbase.Mutation{ Column= "u:r".ToBytes(), Value = Convert.ToInt16(result).ToString().ToBytes() }
        //        });
        //    }


        //}


        /// <summary>
        ///
        /// </summary>
        /// <param name="userid"></param>
        /// <param name="top"></param>
        /// <returns></returns>
        public static List <TRowResult> GetLog(string userid, int top = 100)
        {
            string prefixrow = H.Comm.StringUtility.FixedLenString(userid, 20);

            using (var hclient = HBaseClientPool.GetHclient())
            {
                var scanid = hclient.Client.scannerOpenWithPrefix(tableName.ToBytes(), prefixrow.ToBytes(), new List <byte[]> {
                    "u".ToBytes()
                });

                var list = hclient.Client.scannerGetList(scanid, top);

                return(list);
            }
        }
Пример #9
0
        /// <summary>
        /// 使用矩阵方式收集
        /// </summary>
        /// <param name="userid"></param>
        /// <param name="gameid"></param>
        /// <param name="point"></param>
        /// <param name="ratingtime"></param>
        public static void Games2(string userid, string gameid, double point, DateTime ratingtime)
        {
            if (!Config.IsUseHbase)
            {
                return;
            }

            string tableName = "gameratings2";

            using (var hclient = HBaseClientPool.GetHclient())
            {
                //string strtime = H.Comm.TimeUtility.DescTimeStamp(ratingtime).ToString();
                string row = H.Comm.StringUtility.FixedLenString(userid, 20);

                hclient.Client.mutateRow(tableName.ToBytes(), row.ToBytes(),
                                         new List <Apache.Hadoop.Hbase.Mutation> {
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = ("g:" + gameid).ToBytes(), Value = point.ToString().ToBytes()
                    }
                });
            }
        }
Пример #10
0
        /// <summary>
        /// 一个用户与另一个用户的联系,这里只考虑一个单向的关系
        /// </summary>
        /// <param name="fromUid"></param>
        /// <param name="toUid"></param>
        /// <param name="UpdateTime"></param>
        public static void AddRelation(string fromUid, string toUid, bool add, DateTime UpdateTime)
        {
            if (!Config.IsUseHbase)
            {
                return;
            }

            string tableName = "relation";

            using (var hclient = HBaseClientPool.GetHclient())
            {
                string desctime = H.Comm.TimeUtility.DescTimeStamp(UpdateTime).ToString();

                string rowkey = H.Comm.StringUtility.FixedLenString(fromUid, 20)
                                + H.Comm.StringUtility.FixedLenString(toUid, 20)
                                //+ desctime
                ;
                if (add)
                {
                    hclient.Client.mutateRow(tableName.ToBytes(), rowkey.ToBytes(),
                                             new List <Apache.Hadoop.Hbase.Mutation> {
                        new Apache.Hadoop.Hbase.Mutation {
                            Column = "r:uid".ToBytes(), Value = fromUid.ToBytes()
                        },
                        new Apache.Hadoop.Hbase.Mutation {
                            Column = "r:tid".ToBytes(), Value = toUid.ToBytes()
                        },
                        new Apache.Hadoop.Hbase.Mutation {
                            Column = "r:dt".ToBytes(), Value = UpdateTime.ToString().ToBytes()
                        }
                    });
                }
                else
                {
                    hclient.Client.deleteAllRow(tableName.ToBytes(), rowkey.ToBytes());
                }
            }
        }
Пример #11
0
        /// <summary>
        /// 插入用户订单
        ///
        /// : create 'userorder','o'
        /// </summary>
        public static void AddUserOrder(string userid, string orderid, string productid, string pip, int count, double price, double money, DateTime ordertime)
        {
            using (var hclient = HBaseClientPool.GetHclient())
            {
                string desctime = H.Comm.TimeUtility.DescTimeStamp(ordertime).ToString();
                string rowkey   = H.Comm.StringUtility.FixedLenString(userid, 20) + H.Comm.StringUtility.FixedLenString(productid, 20) + desctime;

                hclient.Client.mutateRow(tableName.ToBytes(), rowkey.ToBytes(),
                                         new List <Apache.Hadoop.Hbase.Mutation> {
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "o:uid".ToBytes(), Value = userid.ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "o:oid".ToBytes(), Value = orderid.ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "o:pid".ToBytes(), Value = productid.ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "o:pip".ToBytes(), Value = pip.ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "o:cnt".ToBytes(), Value = count.ToString().ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "o:pri".ToBytes(), Value = price.ToString().ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "o:mny".ToBytes(), Value = money.ToString().ToBytes()
                    },
                    new Apache.Hadoop.Hbase.Mutation {
                        Column = "o:tim".ToBytes(), Value = ordertime.ToString().ToBytes()
                    }
                });
            }
        }