之前有说Phoenix的一些操作,无非就是一些概念上的一些内容,这些内容也是笔者根据一个微信公众号来的,说白了就是一个转载,后来笔者发现那个哥们也是吧官网翻译了一遍。这篇主要是笔者在使用Phoenix的过程中会用到的一些内容且在前一篇博客中没有涉及到的部分做一个深入的介绍吧。
Phoenix的命令行操作 怎样在已有的表的基础上增加一列
1 ALTER TABLE [table_name] ADD [culomn_name] [type ];
删除已有表的字段
1 ALTER TABLE [table_name] DROP COLUMN [culomn_name];
Phoenix常见的脚本的使用 SqlLine.py
1 2 3 4 5 Usage: $ sqlline.py <zookeeper> <optional_sql_file> Example: $ sqlline.py localhost $ sqlline.py localhost <examples dir>/STOCK_SYMBOL.sql
psql.py
这个脚本可以用来导入外来的数据,但仅限sql/csv
1 2 3 4 5 6 7 8 9 Usage: psql [-t table-name] [-h comma-separated-column-names | in-line] <zookeeper> <path-to-sql-or-csv-file>... Example 1. Create table, upsert row and run query using single .sql file ./psql.py localhost <examples dir>/STOCK_SYMBOL.sql Example 2. Create table, load CSV data and run queries using .csv and .sql files: ./psql.py localhost <examples dir>/WEB_STAT.sql <examples dir>/WEB_STAT.csv <examples dir>/WEB_STAT_QUERIES.sql
performance.py
1 2 3 4 5 6 Usage: performance <zookeeper> <row count> Example: Generates and upserts 1000000 rows and time basic queries on this data ./performance.py localhost 1000000
Phoenix中常见的函数 Aggregate Functions
Function Name
Function Description
example
AVG
求平均
AVG(X)
COUNT
计数
COUNT(*)
APPROX_COUNT_DISTINCT
所有行或非空值的近似不重复计数
APPROX_COUNT_DISTINCT(*)
MAX
最大值
MAX(X)
SUM
所有值的总和
SUM(X)
MIN
最低值
MIN(X)
PERCENTILE_CONT
列中值的第n个百分点
PERCENTILE_CONT( 0.9 ) WITHIN GROUP (ORDER BY X ASC)
PERCENTILE_DISC
PERCENTILE_DISC是一个假设离散分布模型的逆分布函数。它需要一个百分位值和一个排序规范,并从集合中返回一个元素。
PERCENTILE_DISC( 0.9 ) WITHIN GROUP (ORDER BY X DESC)
PERCENT_RANK
如果插入列中,则为假设值的百分数等级。
PERCENT_RANK( 100 ) WITHIN GROUP (ORDER BY X ASC)
FIRST_VALUE
根据ORDERBY规范排序的每个不同组中的第一个值
FIRST_VALUE( name ) WITHIN GROUP (ORDER BY salary DESC)
LAST_VALUE
根据ORDER BY规范排序的每个不同组中的最后一个值
LAST_VALUE( name ) WITHIN GROUP (ORDER BY salary DESC)
FIRST_VALUES
返回一个数组,该数组最多具有根据ORDER BY规范排序的每个不同组中的第一个值的给定数值大小
FIRST_VALUES( name, 3 ) WITHIN GROUP (ORDER BY salary DESC)
LAST_VALUES
返回一个数组,该数组最多具有根据ORDER BY规范排序的每个不同组中最后一个值的给定数字大小
LAST_VALUES( name, 3 ) WITHIN GROUP (ORDER BY salary DESC)
NTH_VALUE
根据ORDER BY规范排序的每个不同组中的第n个值
NTH_VALUE( name, 2 ) WITHIN GROUP (ORDER BY salary DESC)
STDDEV_POP
所有值的总体标准差。仅在选择语句中允许聚合
STDDEV_POP( X )
STDDEV_SAMP
所有值的样本标准偏差
STDDEV_SAMP( X )
String Functions
Function Name
Function Description
Example
SUBSTR
返回从一个位置开始的字符串的子字符串
SUBSTR(str, startIndex, length)
INSTR
返回第二个参数在第一个参数中首次出现的基于位置的位置
INSTR ( stringTerm , stringTerm )
TRIM
从输入字符串中删除前导和尾随空格
TRIM ( stringTerm )
LTRIM
从输入字符串中删除前导空格
LTRIM ( stringTerm )
RTRIM
从输入字符串中删除尾随空格
RTRIM ( stringTerm )
LPAD
使用特定的填充字符(默认为空格)填充字符串表达式,直到length参数为止
LPAD(‘John’,30)
LENGTH
返回字符串的长度(以字符为单位)
LENGTH(‘Hello’)
REGEXP_SUBSTR
通过应用基于一个位置的偏移量的正则表达式,返回字符串的子字符串。就像使用一样SUBSTR,如果开始索引为负,则它相对于字符串的结尾。如果未指定,则起始索引默认为1。
REGEXP_SUBSTR(‘na1-appsrv35-sj35’, ‘[^-]+’) evaluates to ‘na1’
REGEXP_REPLACE
通过应用正则表达式并将匹配项替换为替换字符串来返回字符串。如果未指定替换字符串,则默认为空字符串。
REGEXP_REPLACE(‘abc123ABC’, ‘[0-9]+’, ‘#’) evaluates to ‘abc#ABC’
REGEXP_SPLIT
VARCHAR ARRAY使用正则表达式将字符串拆分为a 。如果要将正则表达式中具有特殊含义的字符用作模式字符串中的正则分隔符,则必须使用反斜杠对它们进行转义。
REGEXP_SPLIT(‘ONE,TWO,THREE’, ‘,’) evaluates to ARRAY[‘ONE’, ‘TWO’, ‘THREE’]
UPPER
返回字符串参数的大写字符串。
UPPER(‘Hello’)
LOWER
返回字符串参数的小写字符串
LOWER(‘HELLO’)
REVERSE
返回字符串参数的反向字符串
REVERSE(‘Hello’)
TO_CHAR
将日期,时间,时间戳或数字格式化为字符串。
TO_CHAR(myDate, ‘2001-02-03 04:05:06’)
COLLATION_KEY
计算排序规则键,该键可用于以自然语言感知的方式对字符串进行排序
SELECT NAME FROM EMPLOYEE ORDER BY COLLATION_KEY(NAME, ‘zh_TW’)
Time and Date Functions
Function Name
Function Description
TO_DATE
解析字符串并返回日期
TO_TIME
将给定的字符串转换为TIME实例
TO_TIMESTAMP
将给定的字符串转换为TIMESTAMP实例
CURRENT_TIME
与CURRENT_DATE()相同,除了返回类型为的值TIME
CONVERT_TZ
将日期/时间从一个时区转换为另一个时区,并返回转换后的日期/时间值。
TIMEZONE_OFFSET
返回特定日期/时间的时区偏移量(以分钟为单位),以分钟为单位
NOW
返回当前日期,该日期根据拥有所查询表元数据的区域服务器上的当前时间,在查询执行开始时绑定
YEAR
返回指定日期的年份。
MONTH
返回指定日期的月份
WEEK
返回指定日期的星期
DAYOFYEAR
返回指定日期的日期。
DAYOFMONTH
返回指定日期的月份中的一天。
DAYOFWEEK
返回指定日期的星期几。
HOUR
返回指定日期的小时。
MINUTE
返回指定日期的分钟。
SECOND
返回指定日期的第二个。
Note: 下面的方法,还是直接去看官网的吧。
Phoenix中的Functions汇总
Numeric Functions
Function Name
Function Description
ROUND
CEIL
FLOOR
TRUNC
TO_NUMBER
RAND
Array Functions
Function Name
Function Description
ARRAY_ELEM
ARRAY_LENGTH
ARRAY_APPEND
ARRAY_PREPEND
ARRAY_CAT
ARRAY_FILL
ARRAY_TO_STRING
ANY
ALL
Math Functions
Function Name
Function Description
SIGN
ABS
SQRT
CBRT
EXP
POWER
LN
LOG
Other Functions
Function Name
Function Description
MD5
INVERT
ENCODE
DECODE
COALESCE
GET_BIT
GET_BYTE
OCTET_LENGTH
SET_BIT
SET_BYTE
其他