分类: 编程技术预览模式: 普通 | 列表

mybaits中foreach与REGEXP结合的用法

在mybaits中,foreach一般与in语法结合使用居多,与正则regexp结合用的没有见到比较多。刚好有这样的一个接口需求,费了点时间研究,达到想要的效果。

需求:需要查询在某字段中,匹配提交过来的字符的数据
需求描述:
在传值到mappper里时 传进来的值useItem的值是一个以逗号,隔开的字符串值[11,12,13],需要在表中字段fit_product找到同时包含11,12,13三个值的数据 而fit_product在数据库的值也是以逗号,切割存储的。



库中数据



eg:

类似的SQL执行语句

select id,fit_product from card_detail  Where fit_product REGEXP '11' AND fit_product REGEXP '12' AND fit_product REGEXP '13' and mem



关键就在这里了,需要很好的处理ope/ separator/close 的值


<if test="useItem != null">
            <if test="useItem.indexOf(',') != -1">
                AND
                <foreach item="item" index="index"
                         collection="useItem.split(',')" open=" " separator="and " close=" ">
                     cd.fit_product REGEXP  #{item}
                </foreach>
            </if>

查看更多...

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 126

品质大数据项目




换岗前的一个项目,这也算是在大数据两年,比较完整的做完的一个项目吧。做得最纠结的地方还是在于数据的清洗与分层。数据的不规整,对结果会产生致命的影响。



















查看更多...

Tags: 品质大数据项目

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 512

nested exception is: java.net.BindException



问题:
java.rmi.server.ExportException: Port already in use: 1099; nested exception is: java.net.BindException: Address already in use: JVM_Bind




解决办法:
进入命令提示行
找出占用端口的进程的PID,进入windows命令,查看什么进程占用了1099端口

使用命令:netstat -aon|findstr 1099 找出占用1099端口的进程




闭占用该端口的进程:taskkill -f -pid 3756

查看更多...

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 454

MySQL 按日累加求销量 按月累加求销量




按日累加求销量




Select
    a.id,
    a.product,
    a.sale_date,
    a.num ,
    (
        Select
            sum(num)
        FROM
            t_sale_stats b
        Where
            b.id <= a.id
        AND b.product = '产品名称'
        AND b.sale_date >= '2015-03-01'
        AND b.sale_date <= '2015-03-05'
    ) cum_num
FROM
    t_sale_stats a
Where
    a.sale_date >= '2015-03-01'
AND a.sale_date <= '2015-03-05'
AND a.product = '产品名称'
ORDER BY

查看更多...

Tags: 按日累加求销量 按月累加求销量

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 482



MyBatis 的配置文件 Configuration 中有相关属性,设属性即可
<configuration>  
<settings>        ……      
<setting name="logImpl" value="STDOUT_LOGGING"/>  
</settings>
</configuration>








查看更多...

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 458

大数据任务调度平台

最近一直在做组内原有的大数据任务平台的优化,同时也学习和了解了业界一些应用较广的开源任务调度平台。我还是总结一下吧。


整个平台的框架是这样的,没有考虑到Spark任务的执行,也没有做分布式部署的考虑,这次比较大的遗憾
















查看更多...

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 468

Hive 杀进程 删除分区数据

杀进程

yarn application -kill  application_1499216480539_24828





删除分区数据

Alter TABLE 库名.表名 Drop PARTITION (分区字段='分区');


查看更多...

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 609

Hive 自动生成建表语句



搜索了很多文章,感觉这个最实在实用,写个脚本批量执行就可以了。



#!/bin/bash
hive -e "use hive_dbname;show tables;" > tables.txt
cat tables.txt | while read eachline
do
hive -e "use hive_dbname;show create table $eachline" >>tablesDDL.txt
done



执行如下




查看更多...

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 713

大数据应用之应用场景



随着大数据的应用越来越广泛,应用的行业也越来越低,我们每天都可以看到大数据的一些新奇的应用,从而帮助人们从中获取到真正有用的价值。很多组织或者个人都会受到大数据的分析影响,但是大数据是如何帮助人们挖掘出有价值的信息呢

















查看更多...

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 928


全量导入比较容易,关键在于增量导入


Sqoop导入数据顺序




其实可以把导入的代码固定成脚本,然后只要把库名跟表名换掉就可以了


Sqoop的增量导入要与sqoop的Job关联在一起

全量导入MS-SQL数据至HIVE

#Set the RDBMS connection params
rbms_driver='com.microsoft.sqlserver.jdbc.SQLServerDriver'
rdbms_connstr="jdbc:sqlserver://MSSQL数据库主机;username=用户名;password=密码;database=库名"
rdbms_username="MSSQL数据库用户名"

查看更多...

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1441

Hive 的字符串UrlDecode 中文解码



真没想到,原来HIVE自己有Urldecode,原本以为要写一个UDF,结果不然。

业务场景: 某字段基本为中文字符,采集时做了urlEncode处理,入到库中没有解码。



要解决的问题:将encode的数据做urldecode处理

方案一:自构建一个UDF函数,需要继承UDF,实现其evaluate()方法

@Description(name = "decoder_url", value = "_FUNC_(url [,code][,count]) - decoder a URL from a String for count times using code as encoding scheme ", extended = ""  
    + "if count is not given ,the url will be decoderd for 2 time,"  
    + "if code is not given ,GBK is used")  
public class UDFDecoderUrl extends UDF {  
  private String url = null;  
  private int times = 2;  
  private String code = "GBK";  
  
  public UDFDecoderUrl() {  

查看更多...

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 7361

Hive的某字段去重导入




需求:
1从源数据导入的数据按日期递增分区存储
2.在实际业务使用时只取最早录入的记录即入库里
3.定时过滤并存储到另一张表内。

关键:
每天从源数据导入的业务数据是全量更新 但存储的时候是增量更新 务必会存在某字段数据重复 需要处理

查询源数据


要得到的数据



要使用到的Hive 函数 row_number()   not in

查询所有最早时间录入的源数据

查看更多...

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2017

大数据架构之Storm流式处理框架

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1039

大数据应用之电商运营数据分析指标








查看更多...

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1114