1、给measure起别名
WITH MEMBER [Measure].[newName] AS [Measure].[originName] SELECT [Measure].[newName] ON COLUMNS, xxx ON ROWS FROM [myCube]
可达到将originName改为newName的效果。
2、查询原始fact记录
使用DRILLTHROUGH查询。
待续
要在开发环境下查看android设备上的sqlite数据库内容,可以使用以下两个方法:
有时发现一些ip频繁访问自己的网站,在排除正常的站点监控和蜘蛛程序以后,需要将这个ip地址列入拒绝访问名单,否则可能额外消耗不少CPU资源。
由于阿里云环境的数据不断增加,时不时要操作一次磁盘扩容,特地将要点记录下来以免每次操作时都提心吊胆。过程主要参考阿里云提供的文档:扩容数据盘(Linux)。
Ubuntu作为被控制端,Win7作为客户端。
目的:为docker container分配一个与宿主机同网段的静态IP,允许同网段用户ssh访问这个container。
步骤1:启动ubuntu镜像:
docker run -itd --name container1 --net=none ubuntu
步骤2:进入container做一些设置:
docker exec -ti container1 bash apt-get update && apt-get install openssh-server -y echo 'root:mypassword'|chpasswd service ssh restart vi /etc/ssh/sshd_config //将PermitRootLogin值改yes
步骤3:可以用docker commit将这些工作打成镜像,以后开新container就方便了:
docker stop container1 docker commit container1 ssh_image:1.0 docker start container1 docker exec -tid container1 service ssh start #开启ssh服务
步骤4:安装并使用pipework设置网络(直连宿主机所在子网):
wget https://github.com/jpetazzo/pipework/archive/master.zip unzip master.zip pipework eth0 container1 10.1.10.86/24@10.1.10.1
参考资料
有些web工程里包含很多.js文件,eclipse每次build项目都花大量时间满负荷校验这些js,甚至导致eclipse失去响应。
经过试验,要禁止eclipse自动校验这些文件,最有效的办法是在工程的build属性里,去掉Javascript Validator这一项,见下图。
参考:How do I remove javascript validation from my eclipse project?
场景:在一个Webapp里集成Mondrian,按官方文档,Catalog位置(即cube文件所在路径)是这个样子的:
Catalog=file:demo/FoodMart.xml
但实际测试发现Mondrian无法找到这个文件,提示信息是“Virtual file is not readable”。如果把相对路径改为绝对路径则是可以的,例如:
Catalog=file:/c:/my/cube/folder/FoodMart.xml
绝对路径的问题是在不同开发部署环境下不太可能相同,所以还是得找其他办法。官方文档里没有写其他例子,按经验试试classpath协议(cube文件放在classpath下):
Catalog=classpath:/my/cube/resource/FoodMart.xml
在windows下居然成功了,其实Mondrian也是调用java.net.URL来获取资源的,所以能解释通。问题是,在linux下同样代码却不行,提示信息是“unknown protocal: classpath ”,两个开发环境都是JDK 1.7,没道理。(这个问题一直没解决)
后来查saiku(基于mondrian的一个开源BI软件)问题,发现还可以用这种写法(链接1、链接2):
Catalog=res:/my/cube/resource/FoodMart.xml
试了一下,在windows和linux下都顺利通过。前提依然是cube文件要放在classpath下。这也是目前使用的解决方案。
补充:还有一种方法是直接写http://开头的链接,这需要把cube文件暴露出来,感觉不如res:的干净。
环境ubuntu 14.04 LTS。如果已经安装过docker,请先卸载,方法见这个链接。
在Linux系统安装docker使用下面的命令:
curl -fsSL get.docker.com -o get-docker.sh sh get-docker.sh
如果上述命令由于网络原因无法成功,可以使用阿里云的镜像(未验证,链接):
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
启动docker:
sudo service docker start
按官方文档,在/etc/docker/daemon.json里(如果没有这个文件可以创建一个)修改dockerd启动配置。但如果在systemd里已经指定的选项,是不能在daemon.json里再次指定的,例如-H选项。
其他配置dockerd的方式:
要连接远程dockerd,在dockerd启动选项里要加上-H tcp://0.0.0.0:2375配置,在客户端docker命令里加上-H tcp://ip:2375选项。
官方镜像:https://github.com/docker-library/official-images/tree/master/library
在Docker里,容器(container)是镜像(image)的实例,查看所有image和所有container的命令分别为:
# docker images //查看所有image # docker ps //查看所有container,加-l参数表示最后一个创建的container
Dockerfile相当于image的源代码,下面是一个示例Dockerfile:
FROM my-image ADD local/my.jar /opt/my.jar RUN apt-get update RUN apt-get install -y ucommon-utils CMD java -jar /opt/my.jar
从Dockerfile创建image的命令如下,其中tag是可选的一般填版本号,缺省值为“latest”
:
# docker build -t name:tag /path/of/dockerfile
启动一个image(从image创建一个新container并启动),以tomcat为例,-d表示后台运行,-p表示将8080端口映射到宿主机的8888端口,tomcat1是container名字,tomcat是image名字:
# docker run -d -p 8888:8080 --name tomcat1 tomcat
删除一个container,-f表示强制删除即使container在running状态:
# docker rm -f tomcat1
有时会遗留一些orphan的container和image,如果一直积累下去可能会占满硬盘空间。Docker没有提供专门的命令清理它们,可以考虑用下面的命令(参考链接):
# docker rm `docker ps --no-trunc -aq` # docker images -q --filter "dangling=true" | xargs docker rmi
要查看每个容器占用资源情况(显示容器名):
docker stats $(docker ps --format={{.Names}})
(待续)
参考资料:
变量 | 含义 |
$$ | Shell本身的PID(ProcessID) |
$! | Shell最后运行的后台Process的PID |
$? | 最后运行的命令的结束代码(返回值) |
$- | 使用Set命令设定的Flag一览 |
$* | 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 |
$@ | 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 |
$# | 添加到Shell的参数个数 |
$0 | Shell本身的文件名 |
$1~$n | 添加到Shell的各参数值。$1是第1参数、$2是第2参数…。如果大于等于10序号要用花括号包起来,例如${10} |
test命令用于检查文件类型和表达式(check file types and compare values),返回的结果放在“$?”里,结果为0表示true,结果不为0表示false。例如:
$ test "a" = "b" $ echo $? 1
test命令可以用“[]”简写(注意[]里面要带有空格,否则提示command not found),后面加上&&符号则表示当表达式成立时执行后续操作。例如:
$ [ "a" = "a" ] && echo yes yes
类似的,后面加上“||”则表示当表达式不成立时执行后续操作。
-z参数用来判断字符串是否为空,例如:
$ [ -z "" ] && echo yes yes
还有一些类似的其他表达式参数,以及与文件相关的参数,可以man test查看。
参考链接: