当前位置:  开发笔记 > 数据库 > 正文

sqoop如何将sql数据类型转换为配置单元

如何解决《sqoop如何将sql数据类型转换为配置单元》经验,为你挑选了1个好方法。

我需要在sqoop中转换为hive的SQL Server数据类型的完整列表。

就像将SQL Server timestamp转换为hive一样string,将SQL Server varchar转换为hivestring等。

在哪里可以找到完整的映射?



1> dev ツ..:

对于Java映射

SELECT * FROM  WHERE 1=0

使用查询。除了元数据外,它将不获取任何记录。

有用的源代码:

  protected String getColNamesQuery(String tableName) {
    // adding where clause to prevent loading a big table
    return "SELECT t.* FROM " + escapeTableName(tableName) + " AS t WHERE 1=0";
  }

然后,它用于ResulSetMetadata查找数据类型。

通用JDBC的有用的源代码,

  int cols = results.getMetaData().getColumnCount();
  ArrayList columns = new ArrayList();
  ResultSetMetaData metadata = results.getMetaData();
  for (int i = 1; i < cols + 1; i++) {
    String colName = metadata.getColumnLabel(i);
    if (colName == null || colName.equals("")) {
      colName = metadata.getColumnName(i);
      if (null == colName) {
        colName = "_RESULT_" + i;
      }
    }
    columns.add(colName);
    LOG.debug("Found column " + colName);

--map-column-java在此映射上覆盖from的映射。


对于配置单元映射

使用此映射:

 public static String toHiveType(int sqlType) {

      switch (sqlType) {
          case Types.INTEGER:
          case Types.SMALLINT:
              return "INT";
          case Types.VARCHAR:
          case Types.CHAR:
          case Types.LONGVARCHAR:
          case Types.NVARCHAR:
          case Types.NCHAR:
          case Types.LONGNVARCHAR:
          case Types.DATE:
          case Types.TIME:
          case Types.TIMESTAMP:
          case Types.CLOB:
              return "STRING";
          case Types.NUMERIC:
          case Types.DECIMAL:
          case Types.FLOAT:
          case Types.DOUBLE:
          case Types.REAL:
              return "DOUBLE";
          case Types.BIT:
          case Types.BOOLEAN:
              return "BOOLEAN";
          case Types.TINYINT:
              return "TINYINT";
          case Types.BIGINT:
              return "BIGINT";
          default:
        // TODO(aaron): Support BINARY, VARBINARY, LONGVARBINARY, DISTINCT,
        // BLOB, ARRAY, STRUCT, REF, JAVA_OBJECT.
        return null;
      }
  }

在此处检查源代码。

--map-column-hive在此映射上覆盖from的映射。

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有