我在Cassandra中相当n00b(我主要来自RDBMS背景,这里和那里都有一些NoSQL,例如Google的BigTable和MongoDB),并且我正在为自己想要满足的用例进行数据建模。我看了这个,这个,甚至这个,但是它们并不是我所需要的。
我有这个基本表:
CREATE TABLE documents (
itemid_version text,
xml_payload text,
insert_time timestamp,
PRIMARY KEY (itemid_version)
);
Run Code Online (Sandbox Code Playgroud)
itemid实际上是一个UUID(并且对于所有文档都是唯一的),并且version是一个int(版本0是“第一个”版本)。 xml_payload是完整的XML文档,并且可能会变得很大。是的,我实际上是在创建版本控制的文档存储。
如您所见,我将两者串联在一起以创建主键,稍后在解释需求和/或用例时,我将解释为什么这样做:
我将编写执行用例的客户端代码,请原谅语法,因为我想与语言无关
第一个很简单:
$itemid_version = concat($itemid, $version)
$doc = csql("select * from documents where itemid_version = {0};"
-f $itemid_version)
Run Code Online (Sandbox Code Playgroud)
现在,为了满足第二和第三个用例,我添加了下表:
CREATE TABLE document_versions (
itemid uuid,
version int,
PRIMARY KEY (itemid, version)
) WITH clustering order by (version DESC);
Run Code Online (Sandbox Code Playgroud)
新记录将添加为新文档,并创建现有文档的新版本
现在我们有了这个(用例#2):
$latest_itemid, $latest_version = csql("select itemid,
version from …Run Code Online (Sandbox Code Playgroud) 我正在尝试用Puppet更新ASP.NET web.config中的任意appsettings列表(用于部署目的)而且我处于两难境地,主要是因为我是一个真正的傀儡n00b.
我有这个yaml文件(hiera)
---
appSettings:
setting1: "hello"
setting2: "world!"
setting3: "lalala"
Run Code Online (Sandbox Code Playgroud)
setting[x]可以任意跨越的数量(一个appSetting),我想循环遍历散列键/值来更新appSetting/addweb.config中的相应内容(使用execpowershell)问题是我已经搜索了如何迭代的高低上键和值.
我遇到过create_resources,当然这会通过一组预先确定的密钥迭代哈希.同样,密钥名称在清单中是未知的(因此迭代键/值对).
任何指导表示赞赏.
编辑:看起来有一个keys()我可以在哈希上使用的函数并迭代,然后使用hiera_hash('appSettings')来获取哈希值并迭代值.
我们正在将我们的服务迁移到 apigee,但遇到了一个问题。我们有一个返回大负载 (>55MB) 的服务,当我通过定义的 apigee 代理传递它时,它会返回:
{
"fault": {
"faultstring" : "Body buffer overflow",
"detail": {
"errorcode": "protocol.http.TooBigBody"
}
}
}
Run Code Online (Sandbox Code Playgroud)
是否有可用于避免这种情况的 apigee 政策和/或代理设置?
而且,不,流媒体不是一种选择。我们需要复制行为,因为我们希望迁移到 apigee 对我们的客户透明。