之前有说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

其他