exists

Hive(5)-DDL数据定义

笑着哭i 提交于 2020-01-16 06:42:59
一. 创建数据库 CREATE DATABASE [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [WITH DBPROPERTIES (property_name=property_value, ...)]; 字段解释: 1). IF NOT EXISTS : 避免要创建的数据库已经存在 2). COMMENT : 给数据库添加一个备注 3). LOCATION : 如果不指定路径,默认的存储路径是HDFS的/user/hive/warehouse/*.db 4). WITH DBPROPERTIES : 给数据库添加一些自定的<key,value> create database if not exists hive_db comment 'my fisrt database' location '/first_database' with dbproperties ('createtime' = '20181218'); Hive默认不支持中文,但是可以改 1). 修改hive_site.xml中的参数 <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://hadoop102

FreeMarker : How to check if a variable exists in a FreeMarker template

梦想的初衷 提交于 2020-01-15 13:08:45
java - How to check if a variable exists in a FreeMarker template? - Stack Overflow https://stackoverflow.com/questions/306732/how-to-check-if-a-variable-exists-in-a-freemarker-template FAQ - Apache FreeMarker Manual https://freemarker.apache.org/docs/app_faq.html 来源: https://www.cnblogs.com/rgqancy/p/12195924.html

How to Remove line if word exists? (PHP)

淺唱寂寞╮ 提交于 2020-01-15 11:13:50
问题 Hey, I want to remove the whole line if a word exists in it? through PHP? Example: hello world, this world rocks . What it should do is: if it finds the word hello it should remove the whole line. How can i do that and there could be words in between brackets and inverted commas also. Thanks. 回答1: If you have an array of lines like so $lines = array( 'hello world, this world rocks', 'or possibly not', 'depending on your viewpoint' ); You can loop through the array and look for the word

sql server之数据库语句优化

孤者浪人 提交于 2020-01-15 06:46:18
一切都是为了性能,一切都是为了业务 一、查询的逻辑执行顺序 (1) FROM left_table (3) join_type JOIN right_table (2) ON join_condition (4) WHERE where_condition (5) GROUP BY group_by_list (6) WITH {cube | rollup} (7) HAVING having_condition (8) SELECT (9) DISTINCT (11) top_specification select_list (9) ORDER BY order_by_list 标准的 SQL 的解析顺序为 : (1) FROM 子句 组装来自不同数据源的数据 (2) WHERE 子句 基于指定的条件对记录进行筛选 (3) GROUP BY 子句 将数据划分为多个分组 (4) 使用聚合函数进行计算 (5) 使用 HAVING 子句筛选分组 (6) 计算所有的表达式 (7) 使用 ORDER BY 对结果集进行排序 二、执行顺序 1. FROM :对 FROM 子句中前两个表执行笛卡尔积生成虚拟表 vt1 2. ON: 对 vt1 表应用 ON 筛选器只有满足 join_condition 为真的行才被插入 vt2 3. OUTER(join) :如果指定了 OUTER JOIN

SQL do not insert duplicates

跟風遠走 提交于 2020-01-15 05:55:28
问题 I have been looking for a solution to best implement a do not insert if the line already exists. I've read a lot of answers which al differ in some way and it's a little above my level to make any sense. For example the following post is the top result: SQL Server Insert if not exist But I cannot understand why the variables are used and how I define table1 and table2. Would somebody be able to explain this a litle further so that I can apply it to my situation? In my example I have about 5

面试:做过sql优化吗?

霸气de小男生 提交于 2020-01-12 08:21:52
  近来面试找工作经常会遇见这种问题: 做过数据库优化吗?大数据量基础过吗?系统反应慢怎么查询?   这咱也没背过啊,面试还老问,现在的网站主要的压力都来自于数据库,频繁的数据库访问经常会使系统瘫痪,这样就需要进行sql优化。明天去58面试,今天来梳理一下。 1. 写明查询具体某几列,减少*的使用,表名过长时,尽量使用表的别名   *和列名一样 2,在业务密集的SQL当中尽量不采用IN操作符,用EXISTS 方案代替。   in 和 exists的区别: 如果子查询得出的结果集记录较少,主查询中的表较大且又有索引时应该用in, 反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exists。其实我们区分in和exists主要是造成了驱动顺序的改变(这是性能变化的关键),如果是exists,那么以外层表为驱动表,先被访问,如果是IN,那么先执行子查询,所以我们会以驱动表的快速返回为目标,那么就会考虑到索引及结果集的关系了 ,另外IN时不对NULL进行处理。   in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。一直以来认为exists比in效率高的说法是不准确的。 3、模糊查询like,尽量少用%   关键词%yue%,由于yue前面用到了“%”,因此该查询必然走全表扫描,除非必要,否则不要在关键词前加%, 4,

oracle sql优化

笑着哭i 提交于 2020-01-11 07:16:29
整理一下网上所看到sql优化方法 1 、 使用大写字母书写sql,因为oracle解释器会先将sql语句转换成大写后再解释 2 减少访问数据库的次数,多数情况下一条sql可以达到目的的,就不要使用多条sql。 当执行每条SQL语句时,ORACLE在内部执行了许多工作:解析SQL语句,估算索引的利用率,绑定变量,读数据块等等。由此可见,减少访问数据的次数,就能实际上减少ORACLE的工作量。 例如: 以下有三种方法可以检索出雇员号等于0342或0291的职员。 方法1(最低效) SELECT EMP_NAME,SALARY,GRADE FROM EMP WHERE EMP_NO=342; SELECT EMP_NAME,SALARY,GRADE FROM EMP WHERE EMP_NO=29; 方法2(高效) SELECT A.EMP_NAME,A.SALARY,A.GRADE, B.EMP_NAME,B.SALARY,B.GRADE FORM EMP A,EMP B WHERE A.EMP_NO=342 AND B.EMP_NO=29 3 减少对表的查询 在含有子查询的SQL语句中,要特别注意减少对表的查询。例如: 低效 SELECT TAB_NAME FROM TABLES WHERE TAB_NAME=(SELECT TAB_NAME FROM TAB_COLUMNS

Config inconsistency exists: unknown configType=kafka-broker

柔情痞子 提交于 2020-01-10 14:39:40
ambari卸载kafka 出现上述错误 查看日志tail -100 /var/log/ambari-server/ambari-server.log ERROR [ambari-client-thread-29533] HostImpl:1084 - Config inconsistency exists: unknown configType=kafka-broker 问题梳理 错误: 已经在ambari-server中将hbase服务删除掉,出现该错误怀疑上次删除完关闭ambari-server时,没有来得及更新数据库导致的,所以需要手动变更数据库才能解决; 源码解析 定位到异常错误的地方,在HostImpl中,看到如下的代码: @Override public Map<String, HostConfig> getDesiredHostConfigs(Cluster cluster, Map<String, DesiredConfig> clusterDesiredConfigs) throws AmbariException { Map<String, HostConfig> hostConfigMap = new HashMap<String, HostConfig>(); if( null == cluster ){ clusterDesiredConfigs =

SQL EXISTS与IN的区别(2)

安稳与你 提交于 2020-01-10 05:58:15
select * from A where id in(select id from B) 以上查询使用了in语句,in()只执行一次,它查出B表中的所有id字段并缓存起来.之后,检查A表的id是否与B表中的id相等,如果相等则将A表的记录加入结果集中,直到遍历完A表的所有记录. 它的查询过程类似于以下过程 List resultSet=[]; Array A=(select * from A); Array B=(select id from B); for(int i=0;i<A.length;i++) { for(int j=0;j<B.length;j++) { if(A[i].id==B[j].id) { resultSet.add(A[i]); break; } } } return resultSet; 可以看出,当B表数据较大时不适合使用in(),因为它会B表数据全部遍历一次. 如:A表有10000条记录,B表有1000000条记录,那么最多有可能遍历10000*1000000次,效率很差. 再如:A表有10000条记录,B表有100条记录,那么最多有可能遍历10000*100次,遍历次数大大减少,效率大大提升. 结论:in()适合B表比A表数据小的情况 select a.* from A a where exists(select 1 from B b where

SQL中IN和EXISTS用法的区别

别等时光非礼了梦想. 提交于 2020-01-10 00:40:27
结论 1. in()适合B表比A表数据小的情况 2. exists()适合B表比A表数据大的情况 当A表数据与B表数据一样大时,in与exists效率差不多,可任选一个使用. select * from A where id in(select id from B) 以上查询使用了in语句,in()只执行一次,它查出B表中的所有id字段并缓存起来.之后,检查A表的id是否与B表中的id相等,如果相等则将A表的记录加入结果集中,直到遍历完A表的所有记录. 它的查询过程类似于以下过程 List resultSet=[]; Array A=(select * from A); Array B=(select id from B); for(int i=0;i<A.length;i++) { for(int j=0;j<B.length;j++) { if(A[i].id==B[j].id) { resultSet.add(A[i]); break; } } } return resultSet; 可以看出,当B表数据较大时不适合使用in(),因为它会B表数据全部遍历一次. 如:A表有10000条记录,B表有1000000条记录,那么最多有可能遍历10000*1000000次,效率很差. 再如:A表有10000条记录,B表有100条记录,那么最多有可能遍历10000*100次