protected Connection getConnect() throws SQLException, ClassNotFoundException {
    HiveUtil.verifyDriver();

    if (connect == null) {
      String url =
          HiveUtil.getUrl(hiveConfig.getHost(), hiveConfig.getPort(), hiveConfig.getDatabase());
      connect =
          DriverManager.getConnection(url, hiveConfig.getUserName(), hiveConfig.getPassword());
    }
    return connect;
  }
  protected void load() throws ClassNotFoundException, SQLException {
    Statement queryStmt = getConnect().createStatement();
    // id long, imsi string, isdn string, imei string, operatorCode string, operatorName string,
    // deviceBrand string, deviceModel string
    String sql =
        "select id, imsi, isdn, imei, operatorCode, operatorName, deviceBrand, deviceModel from "
            + hiveConfig.getTableName();
    ResultSet rs = queryStmt.executeQuery(sql);

    if (!rs.first()) {
      logger.warn("No Record for customer enriched info.");
      rs.close();
      return;
    }

    List<SingleRecord> customerInfoList = Lists.newArrayList();
    while (rs.next()) {
      int columnIndex = 0;
      String id = rs.getString(columnIndex++);
      String imsi = rs.getString(columnIndex++);
      String isdn = rs.getString(columnIndex++);
      String imei = rs.getString(columnIndex++);
      String operatorCode = rs.getString(columnIndex++);
      String operatorName = rs.getString(columnIndex++);
      String deviceBrand = rs.getString(columnIndex++);
      String deviceModel = rs.getString(columnIndex++);

      SingleRecord record =
          new SingleRecord(
              id, imsi, isdn, imei, operatorCode, operatorName, deviceBrand, deviceModel);
      customerInfoList.add(record);
    }

    customerInfoArray = customerInfoList.toArray(new SingleRecord[0]);
  }