小编Yan*_* K.的帖子

在分组/聚合期间连接/合并数组值

我有一个数组列类型的表:

 title       tags
"ridealong";"{comedy,other}"
"ridealong";"{comedy,tragedy}"
"freddyjason";"{horror,silliness}"
Run Code Online (Sandbox Code Playgroud)

我想编写一个查询,每个标题生成一个数组(理想情况下,它将是一个set/deduplicated数组)

例如

select array_cat(tags),title from my_test group by title
Run Code Online (Sandbox Code Playgroud)

上面的查询当然不起作用,但我想生成2行:

"ridealong";"{comedy,other,tragedy}"
"freddyjason";"{horror,silliness}"
Run Code Online (Sandbox Code Playgroud)

任何帮助或指针将非常感谢(我使用的是Postgres 9.1)


基于Craig的帮助,我最终得到了以下内容(自9.1以来,语法略有改变,完全按照他的说法抱怨查询)

SELECT t1.title, array_agg(DISTINCT tag.tag) 
FROM my_test t1, (select unnest(tags) as tag,title from my_test) as tag 
where tag.title=t1.title
GROUP BY t1.title;
Run Code Online (Sandbox Code Playgroud)

sql postgresql

23
推荐指数
2
解决办法
1万
查看次数

在Docker镜像中安装java

这是我第一次尝试创建一个docker图像,我希望有人可以帮助我.我的Dockerfile看起来大致如下:

FROM mybaseimage:0.1
MAINTAINER ...

ENV JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64
RUN sed 's/main$/main universe/' -i /etc/apt/sources.list

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update

RUN apt-get install -y openjdk-7-jre && apt-get clean &&\
             mkdir temp_dir  &&   cd temp_dir && \
             ${JAVA_HOME}/bin/jar -xvf somejar.jar  &&\
             cd ..
ENTRYPOINT ["somescript.sh"]
Run Code Online (Sandbox Code Playgroud)

基本上我只是安装Java所以我可以扩展一个jar文件.当我运行我的makefile时,我收到以下错误:

/ bin/sh:1:/ usr/lib/jvm/java-7-openjdk-amd64:权限被拒绝

我一直试图遵循这个例子:https: //registry.hub.docker.com/u/barnybug/openjdk-7-jre/dockerfile/

建议非常感谢

编辑:这里的评论中的每个请求是我的makefile:

DOCKER_REGISTRY=registry.mycompany.com
DOCKER_IMAGE=appimage-myapp
DOCKER_TAG=3.0

SUDO=

ARCHIVE_NAME=$(DOCKER_IMAGE):$(DOCKER_TAG)
  REPO_ARCHIVE_NAME=$(DOCKER_REGISTRY)/$(ARCHIVE_NAME)
  BASE_IMAGE_ARCHIVE=$(DOCKER_IMAGE)_$(DOCKER_TAG).tar.gz

all: $(BASE_IMAGE_ARCHIVE)

.PHONY: docker_image

docker_image: Dockerfile
    $(SUDO) docker build -t $(ARCHIVE_NAME) .

$(BASE_IMAGE_ARCHIVE): docker_image
  $(SUDO) docker tag -f $(ARCHIVE_NAME) …
Run Code Online (Sandbox Code Playgroud)

dockerfile

14
推荐指数
4
解决办法
4万
查看次数

Go 模块与包

刚开始学习 Go Modules。我有一个关于在同一模块中导入本地包的问题。我正在查看的示例是这个 repo:

https://github.com/Azure/azure-service-bus-go

该模块是module github.com/Azure/azure-service-bus-go. 该模块中有一个单独的包atom(但它本身不是模块)。当主包中的文件 import atom 时,它们会这样做:import "github.com/Azure/azure-service-bus-go/atom"--queue_manager.go以示例为例。

我不太明白 - GO 怎么知道查看本地 atom 包,而不是说 Github 上的包?正在修改的模块的一部分被远程/绝对 URI 引用,这让我感到困惑。是否可以保证如果我修改本地磁盘上的文件并构建我实际上是在引用最新版本而不是已经推送的版本?

作为一个玩具练习,我尝试创建一个具有不存在的 Github URI 的模块,实际上它确实似乎go mod tidy试图在 Github 上查找,即使实际上确实存在本地副本

go go-modules

6
推荐指数
2
解决办法
4188
查看次数

Postgres:org.postgresql.util.PSQLException:错误:消息中留下的数据不足

我读得足够多,知道当字符串包含 Postgres 不喜欢的一些字符时就会发生这种情况。但是,我不知道是否有办法在写入字符串之前验证它们。特别是,我正在进行批量插入。

\n\n
insert into foo(col1,col2,col3) values ('a',2,3),('b',4,0),....\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的数据库设置如下:

\n\n
   Name     | Owner  | Encoding | Collate | Ctype | Access privileges\n------------+--------+----------+---------+-------+-------------------\n stats      | me     | UTF8     | C       | C     |\n
Run Code Online (Sandbox Code Playgroud)\n\n

定期地,一些坏字符串会进入并且整个插入将失败(例如change\xc3\xaf\xc2\xbf\xc2\xbd\xc3\xaf\xc2\xbf\xc2\xbd\xc3\xaf\xc2\xbf\xc2\xbd=)。我在单个插入中批量处理了相当多的值,因此我希望理想地验证字符串而不是轰炸整个插入。是否有 Postgres 插入中不允许使用的字符的列表?

\n\n

使用 postgresql-jdbc 9.1-901.jdbc4

\n

postgresql-9.1

5
推荐指数
2
解决办法
2万
查看次数

对Cassandra术语感到困惑(行与分区)

我希望有人可以清除我对Cassandra中行和分区之间差异的困惑.我认为一行是一组列(如在SQL DB中),如模式中所指定的,由分区键分布在节点上,并由每个分区内的聚类键排序.

但后来我遇到了这个教程:https://academy.datastax.com/demos/getting-started-time-series-data-modeling

在"时间序列模式1"下,它指出:

由于每列都是动态的,因此我们的行将根据需要增长以容纳数据.

为什么一排会增长?我可以看到分区在增长,但为什么要排?该示例中的图片对我来说也没有意义 - 我认为分区是一组行,每行都有一个(WeatherStation |事件)列,其中WeatherStationID对于分区中的每一行都是相同的重复值.

我也试过看这个教程:http://www.slideshare.net/yukim/cql3-in-depth,slide 15. 在此输入图像描述

我的阅读是这显示了一个有两行的分区.在我看来,无论你插入多少数据,分区都会增长但不是行(当然没有运行"alter table")?

terminology row cassandra

5
推荐指数
1
解决办法
849
查看次数