Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法在kdb+;不先解压缩它?_Kdb_Q Lang - Fatal编程技术网

有没有办法在kdb+;不先解压缩它?

有没有办法在kdb+;不先解压缩它?,kdb,q-lang,Kdb,Q Lang,,-11不适用于命名管道,因此一个显而易见的解决方案是将gzip-cd输出重定向到命名管道并将其传递到-11不工作。-11接受压缩文件并流式传输,只要它是用-19压缩的(使用2作为压缩算法参数,即gzip) 普通gzip文件和kdb压缩文件之间的唯一区别是文件开头有几个字节 编辑(请参阅注释)谢谢,这不是真的-文件末尾的字节不同 因此,一个可能的解决方案是先用适当的字节数组预处理gzip文件(如果它们不是由-19!生成的) 对于使用kdb v3.4+流式执行的任何人,该功能已被引入 下面是.Q.

-11
不适用于命名管道,因此一个显而易见的解决方案是将
gzip-cd
输出重定向到命名管道并将其传递到
-11不工作。

-11
接受压缩文件并流式传输,只要它是用
-19压缩的(使用2作为压缩算法参数,即gzip)

普通gzip文件和kdb压缩文件之间的唯一区别是文件开头有几个字节

编辑(请参阅注释)谢谢,这不是真的-文件末尾的字节不同


因此,一个可能的解决方案是先用适当的字节数组预处理gzip文件(如果它们不是由
-19!
生成的)

对于使用kdb v3.4+流式执行的任何人,该功能已被引入

下面是
.Q.fps
的一个简单示例,首先通过命令行创建管道:

echo "aa" > test.pipe
在q会话中的下一步:

q).Q.fps[0N!]`:test.pipe
,"aa"

其中是一个用于显示文件内容的函数。

您引用的wiki文章包含以下建议:“不要对日志文件使用流式压缩,因为在崩溃的情况下,日志文件将无法使用,因为它将丢失文件末尾的元信息。”这是指gzip元数据还是kx元数据?如果是后者,这似乎使你的答案无效。大概建议是不要写入压缩文件,如果文件已经压缩,q会这样做。问题是关于阅读,所以我认为这个建议不适用。我主要提到wiki警告,指出元数据写在压缩日志的末尾,而不是开头。我不确定这篇文章是指常规的gzip元数据还是kx特定的元数据。常规的gzip格式包含一个CRC和文件末尾的未压缩长度,但是kx压缩文件有完全不同的内容。这意味着“普通gzipped文件和kdb压缩文件之间的唯一区别是文件开头的几个字节”不是真的。顺便说一句,kx压缩文件的“魔法”头是8个字节,其中包含ASCII字符“kxzipped”,但与gzip在格式上的区别更大。