是否可以通过仅更改log4j.properties.xml配置文件让log4j以JSON格式输出其日志记录?
我使用了一个旧的应用程序log4j 1.2.我只看到XML布局但没有JSON布局.
我多次读到NOSQL数据库中的数据存储为非规范化.例如,考虑国际象棋游戏记录.它不仅可以包含参与国际象棋游戏的玩家ID,还可以包含该玩家的名字和姓氏.我想这样做是因为在NOSQL中无法进行连接,因此如果您只是复制数据,您仍然可以在一次调用中检索所需的所有数据,而无需手动应用程序级别处理数据.
我不明白的是,现在当你想要更新国际象棋选手的名字时,你必须编写一个查询来更新该玩家参与的国际象棋游戏记录以及该玩家的玩家记录.这似乎是一个巨大的性能开销,因为数据库必须搜索该玩家参与的所有游戏,然后更新每个记录.
数据是否经常像我的例子一样存储为非规范化?
我读到在nosql(例如cassandra)中,数据通常存储为非规范化.例如,请参阅此SO答案或本网站.
例如,如果您有一系列员工和部门,并且您想要执行查询:select * from Emps where Birthdate = '25/04/1975'
那么您必须创建一个列系列birthday_Emps并将每个员工的ID存储为一列.那么你可以在birthday_Emps系列中查询密钥'25/04/1975',并立即获得该日出生的员工的所有ID.您甚至可以将员工详细信息归一化为birthday_Emps,以便您立即拥有员工姓名.
这真的是这样做的吗?
无论何时删除或插入员工,您都必须从birthday_Emps中删除该员工.在另一个例子中,有人甚至说过,有时你会遇到某种情况,一些表中的删除需要100个其他表中的删除.这真的很常见吗?
在应用程序代码中进行连接是否常见?您是否拥有允许您创建预先编写的应用程序以将来自不同查询的数据连接在一起的软件?
是否有处理这些数据模型问题的最佳实践,模式等?
考虑下表。
-------------------------------------------------- --- | 游戏 ID | 蓝色_玩家_id | 红色玩家 ID | 关闭 | -------------------------------------------------- --- | 1 | 4 | 5 | “蓝色”| -------------------------------------------------- --- | 2 | 1 | 2 | “红色”| -------------------------------------------------- --- | 3 | 3 | 4 | “蓝色”| -------------------------------------------------- ---
我想编写一个查询,根据给定游戏 ID 的turn_of 列选择 blue_player_id 或 red_player_id。
因此,对于 game_id=1,它应该返回 4,对于 game_id=2,它应该返回 2,对于 game_id=3,它应该返回 3。
我知道我可以在两个查询中执行此操作,首先选择轮到谁,然后在第二个查询中选择正确的列。但是,有没有一种不使用数据库特定SQL的查询方法呢?
我有一个 Dockerfile 来创建一个包含 apache 网络服务器的图像。但是,我也想使用 Dockerfile 构建我的网站,以便构建过程不依赖于开发人员的本地环境。请注意,docker 容器仅用于本地开发而不用于生产。
我有这个 Dockerfile:
FROM httpd
RUN apt-get update -yq
RUN apt-get -yq install curl gnupg
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash
RUN apt-get update -yq
RUN apt-get install -yq \
dh-autoreconf=19 \
ruby=1:2.5.* \
ruby-dev=1:2.5.* \
nodejs
Run Code Online (Sandbox Code Playgroud)
我构建它:
sudo docker build --no-cache .
Run Code Online (Sandbox Code Playgroud)
构建成功完成,这是输出的一部分:
Step 9/15 : RUN curl -sL https://deb.nodesource.com/setup_12.x | bash
---> Running in e6c747221ac0
......
......
......
Removing intermediate container 5a07dd0b1e01
---> 6279003c1e80
Successfully built 6279003c1e80
Run Code Online (Sandbox Code Playgroud)
但是,当我使用这个在容器中运行图像时:
sudo …Run Code Online (Sandbox Code Playgroud)