如何 pull/read 来自外部 SQL 服务器的数据批量存储在一个 kdb+ table 中

How to pull/read data from an external SQL server in batches ard store all in one kdb+ table

我们有一个外部 PostgreSQL 服务器,我们在其中使用 odbc 提取数据。我们通常会根据需要分块提取数据,因此有时会提取所有日期 "where date > (some specific date)" 或 "where id > (some specified id)" 或特定日期之间的数据(如 start_date 和 end_date)。下面的示例代码

上述条件非常简单,可以在不给服务器增加太多负担的情况下实现。

但是当我们需要拉取整个服务器数据(服务器上的数据太多)时,情况就不同了。有没有办法批量从服务器中提取数据,以免服务器负担过重?

下面是我们用来

的例子
getdata:{[]
 query: "select data.id, data.first_name, data.last_name, data.email, data.created_at from data  where data.created_at > '2020-02-04' order by id asc" ];
 us::.odbc.open `dbs;
 leads::.odbc.eval[us; query];
 .odbc.close us;
 };

dbs = 服务器名称

您能否在 kdb 端创建日期批次并为每个批次生成一个 startDate-endDate 查询?例如从 2002.01.01

开始创建 5 年的 start/end 日期
q){(`date$s),'-1+`date+s:(12*til y)+`month$x}[2002.01.01;5]
2002.01.01 2002.12.31
2003.01.01 2003.12.31
2004.01.01 2004.12.31
2005.01.01 2005.12.31
2006.01.01 2006.12.31

我想您还必须遍历服务器上的每个 table。