postgreSQL 使用笔记

#前言

   之前从Wind读取到的数据太多了,一年有一个亿的分钟数据....MYSQL肯定抗不住,团哥说上亿无脑使用postgreSQL,好吧,那就用它吧。在使用过程中有些会自动超时断开和默认帐号md5登录不了的问题,所以先记录一下。


#上码

1,帐号md5不能登录问题
  找到pg_hba.conf 配置文件(我的是在/data/pgsql里面)
      host    all             all             ::1/128                 md5
      #改成(md5->trust)
      host    all             all             0.0.0.0/32            trust 
  重启postgresql服务
      sudo service postgresql restart
  修改密码
      alter user postgres with password 'YOUR PASSWORD'
  
2,truncate id不清零问题,使用如下命令
   TRUNCATE table RESTART IDENTITY;  
   
3,处理超时断开问题
   
   #postgresql 自动断开问题
   tcp_keepalives_idle = 0                 # TCP_KEEPIDLE, in seconds;
                                        # 0 selects the system default
   tcp_keepalives_interval = 0             # TCP_KEEPINTVL, in seconds;
                                        # 0 selects the system default
   tcp_keepalives_count = 0                # TCP_KEEPCNT;
                                        # 0 selects the system default
   statement_timeout = 0
    
   #cat /etc/sysctl.conf 增加
   net.ipv4.tcp_keepalive_time = 600
   net.ipv4.tcp_keepalive_probes = 3
   net.ipv4.tcp_keepalive_intvl = 15


#修正一下上一文章使用R的批量写入数据库的问题,之前的方法太差劲。把数据for出来再拼数据,昨天发现一个好办法,其实不用那么麻烦。上码

    data1    = datas$Data
    #change name
    colnames(data1)[1] = 'time'
    
    #conver to string
    data1$time = paste(format(data1$time,"%Y-%m-%d %H:%M:%S"),sep="")
    assetId    = findIdForCodeFromDatas(assets,code)
    asset <-data.frame(asset_id=assetId)
    
    #merge column
    records  = cbind(data1,asset);
    

    #change nan to 0  
    records[is.na(records)] <- 0
    
     tryCatch({
      insertRecord(gpsConn,TABLE,records)
    },warning = function(war){
        print("warning ")
        print(war)
    },error=function(err){
        print("err")
        print(err)
      
        
    },finally={
        
    })