小编Ond*_*ček的帖子

在 PHP 中通过 ODBC(使用 PDO)查询 Snowflake 返回错误数据

我正在尝试通过 PHP(CentOS 6 和 7)中的 ODBC 驱动程序连接到 Snowflake,并利用 PDO 来更轻松地访问。

ODBC 驱动程序似乎已安装并正常工作,因为 PHP 中的本机 ODBC 函数运行得很好:

$dsn = "Driver=SnowflakeDSIIDriver;Server=" . SNOWFLAKE_HOST;
$dsn .= ";Account=" . SNOWFLAKE_ACCOUNT;
$dsn .= ";Port=" . SNOWFLAKE_PORT;
$dsn .= ";Schema=" . SNOWFLAKE_SCHEMA;
$dsn .= ";Warehouse=" . SNOWFLAKE_WAREHOUSE;
$dsn .= ";Database=" . SNOWFLAKE_DATABASAE;

$conn_id = odbc_connect($dsn, SNOWFLAKE_USER, SNOWFLAKE_PASSWORD);
odbc_exec($conn_id, "USE WAREHOUSE " . SNOWFLAKE_WAREHOUSE);

$res = odbc_exec($conn_id, 'SHOW TABLES IN SCHEMA ' . SNOWFLAKE_SCHEMA . ';');
if ($res) {
    print "Tables in schema\n";
    while($row = odbc_fetch_array($res)) { …
Run Code Online (Sandbox Code Playgroud)

php odbc pdo snowflake-cloud-data-platform

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

Docker容器中的尾巴:无法分配内存

我正用这个问题把头撞在墙上。我们正在并行运行许多容器,它们正在运行简单的文件系统操作或简单的linux命令,并且其中某些在某些情况下会因内存分配问题而失败,Docker容器会出现OOMKiled。

我相信它与特定命令无关。tail不是唯一失败的命令,我们也遇到过cpgzip

我们已经缩小了问题的范围,并创建了一个脚本,当参数根据底层系统进行相应调整后,几乎可以肯定会失败。

https://github.com/keboola/processor-oom-test

具有默认设置的脚本会生成具有100M行(〜2.5GB)的随机CSV,将其复制20次,然后运行20个运行中的容器tail -n +2 ...。在m5.2xlarge具有1TB SSD 的AWS EC2实例上,某些容器被OOMKilled(某些容器具有不同的错误)。进程因各种错误而终止:

/code/tail.sh: line 2:    10 Killed                  tail -n +2 '/data/source.csv' > '/data/destination.csv'
tail: error reading '/data/source.csv': Cannot allocate memory
tail: write error
Run Code Online (Sandbox Code Playgroud)

(最后一个不是OOMKilled)

我不知道该tail消耗任何内存。如果可以同时工作的容器数量足够少,则可以轻松使用64MB的内存。对于更大数量的容器,即使256MB内存也不够用。我一直在观察htopdocker stats还没有看到内存消耗的任何峰值。

我们已经尝试过的事情

  • 不同的Docker图片(Alpine,centos,ubuntu)
  • 不同的文件系统(ext3,xfs)
  • 不同的操作系统发行版(centos,ubuntu)
  • 不同的实例提供者(Digital Ocean,AWS)
  • 不同类型的实例和块设备
  • 文件系统交换/交换
  • Docker内存交换和交换

其中一些只提供了部分帮助。调整内存限制或容器数量会使它每次都再次崩溃。我们有一个带有1GB内存的容器,tail使用OOMKilled可以在大型文件崩溃时简单地运行。

关于几个月前我尝试过的内容-https: //500.keboola.com/cp-in-docker-cannot-allocate-memory-1a5f57113dc4。而--memory-swap原来只仅仅是一个局部的帮助。

有什么建议么?我不是Linux专家,所以我可能缺少一些重要的东西。任何帮助或建议,我们将不胜感激。

linux memory docker

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

标签 统计

docker ×1

linux ×1

memory ×1

odbc ×1

pdo ×1

php ×1

snowflake-cloud-data-platform ×1