草庐IT

SQL:DML、DQL、DCL

全部标签

sql - 在 Hive SQL 中,使用分区键基于另一个表中的列创建表

我想根据现有表中的列创建一个新表,在配置单元中添加一个新的分区列。我想在hivesql中实现这个目标。除了下面的sql或者使用kettle之类的ETL工具还有没有别的办法createtableifnotexiststable_name(col1,col2,col3,……,coln)partitionedbydt;其中col1到coln来自已经存在的旧表,dt是新添加的partitionkey。因为旧表太大,可能有几百列,罗列出来会很累。但是,下面的sql显示语法错误:createtableifnotexiststable_namelikeolder_table_namepartitio

sql - Hive SQL Integer YYYYMM 前几个月

我想创建一个查询最近2个月的SQL语句。例如:Select*fromxwheresampledate目前我正在使用这个:(year(from_unixtime(unix_timestamp()))*100+month(from_unixtime(unix_timestamp())))-1但它在一年的前两个月返回错误的语句:(我的想法是用日期计算,然后把它改成yyyymm整数格式。有什么想法吗? 最佳答案 你能试试这个吗:SELECTcolomnFROMtableWHEREdate>(SELECTadd_months(from_uni

sql - 使用时间轴列作为 Hive 分区字段时出现异常

我正在尝试将数据从普通表加载到Hive分区表。这是我的普通表格语法:createtablex(namestring,date1string);这是我的新分区表语法:createtabley(namestring,date1string)partitionedby(timestamp1string);下面是我是如何加载数据到y的:insertintotableyPARTITION(SUBSTR(date1,0,2))selectname,date1fromx;这是我的异常(exception):FAILED:ParseExceptionline1:39missing)at'('near'

hadoop - sqoop eval 中文件的 SQL 评估参数

是否有任何选项可以从文件运行SQL评估参数,而不是在sqoop评估期间使用--query参数硬编码sql语句?例如:sqoopeval-Dmapreduce.job.queuename=NONP.XXXX--connect"jdbc:oracle:thin:ABC/PSCODE@XXX.XX.XX.com:61901/XXX_ANY"--usernameXXXX--passwordDXX--query"TRUNCATETABLESAMPLE_STG_TABLEDROPSTORAGE";我想在文件statement.sql中存储语句"TRUNCATETABLESAMPLE_STG_TAB

sql - Hive 中 SQL Server UPDATE 命令的最佳等价物

Hive中SQLServerUPDATESET命令的最佳(更便宜)等价物是什么?例如,考虑我要转换以下查询的情况:UPDATETABLEemployeeSETvisaEligibility='YES'WHEREexperienceMonths>36等效于Hive查询。 最佳答案 我假设您有一个没有分区的表,在这种情况下您应该能够执行以下命令:INSERTOVERWRITETABLEemployeeSELECTemployeeId,employeeName,experienceMonths,salary,CASEWHENexperie

SQL Server连接Hadoop——实现的思考与挑战

我想提出SQLServer的Hadoop发行版HDInsight的问题。鉴于提供了与Hadoop的连接,有没有人有使用HDInsight的经验,特别是在现实生活中的DTP场景或个人1节点安装中比较Hadoop/SQLServer连接器和HDIinsight/SQLServer?http://sqlmag.com/blog/use-ssis-etl-hadoophttp://www.microsoft.com/en-us/download/details.aspx?id=27584http://www.microsoft.com/en-us/sqlserver/solutions-tec

sql - 如何在 Hive 中使用 between 实现连接?

我有一个Hive表,其中包含IP地址的数字版本。我有另一个包含开始、结束、位置的表,其中开始和结束定义了与位置关联的一系列数字IP。ExampleNumeric:29start|end|location----------------------1|11|66612|30|77731|40|888Output:29-777我需要使用表1中的IP来查找表2中的位置。我是Hive的新手,发现我不能在连接语句中使用BETWEEN或。我一直在尝试找出使用HiveSQL实现此目的的某种方法,但无法弄清楚。有办法吗?如果需要其中一个,我也有点熟悉UDF。我愿意接受这样的想法,即这在Hive中是不可

sql - 在 HIVE 中,分区列不是底层保存数据的一部分?

我有一些日志数据,有字段id,tdate,信息我创建了一个动态分区表CREATETABLElog_partitioned(idSTRING,infoSTRING)PARTITIONEDBY(tdateSTRING)然后我正在加载数据FROMlogslgINSERTOVERWRITETABLElog_partitionedPARTITION(tdate)SELECTlg.id,lg.info,lg.tdateDISTRIBUTEBYtdate;正在通过动态分区成功加载数据。但是当我试图查看数据时hdfsdfs-cat/user/hive/warehouse/log_partitioned

sql-server - Sqoop 导出到 Sql Server VS 批量插入到 SQL Server

我有一个关于ApacheSqoop的独特查询。我已使用apacheSqoop导入工具将数据导入到我的HDFS文件中。接下来,。我需要使用Hadoop(Sqoop)将数据放回另一个数据库(基本上我正在执行从一个数据库供应商到另一个数据库供应商的数据传输)。PutdataintoSqlServer,有两个选项。1)使用Sqoop导出工具连接到我的RDBMS(SQL服务器)并直接导出数据。2)使用copyToLocal命令将HDFS数据文件(CSV格式)复制到我的本地机器,然后对这些CSV文件执行BCP(或批量插入查询)以将数据放入SQL服务器数据库。我想了解哪种方法是完美的(或者更确切地说

sql - Hive 将无法识别查询中第二个条件中的列名

我运行了以下查询并得到了以下错误。请查看该错误消息提到它认为不存在的列名称(平台)。奇怪。hive-S-e'select*fromdevices.device_app_actionwhereds='20160511'ANDplatform='ios'limit3;'FAILED:SemanticException[Error10004]:Line1:73Invalidtablealiasorcolumnreference'ios':(possiblecolumnnamesare:duid,id,dt,app,platform,app_level,tier1,tier2,tier3,ti