Выберите конкретные разделы при вызове sqlDS в DolphinDB - PullRequest
1 голос
/ 09 мая 2019

В DolphinDB я могу использовать sqlDS для генерации источников данных, предоставляя метакод SQL.Обычно sqlDS возвращает кортеж, в котором каждый элемент соответствует разделу в базе данных.

Иногда я бы уже знал, какие разделы нужны, а какие нет, но sqlDS всегда будет возвращать все возможныеисточники данных.Я хотел бы знать, могу ли я выбрать разделы и позволить sqlDS возвращать источники данных только в этих разделах.

Например, у меня была база данных и таблица, подобная этой:

db = database("test", VALUE, 2019.01M 2019.02M 2019.03M 2019.04M)
t = table(2019.01.01T01:23:45 2019.02.01T01:23:45 2019.03.01T01:23:45 2019.04.01T01:23:45 as time)
pt = db.createPartitionedTable(t, `t, `time)
pt.append!(t)
pt = db.loadTable(`t)

И я хотел использовать sqlDS для генерации источника данных только в разделе 2019.03M:

sqlDS(<select * from pt where month(time) = 2019.03M>)

Казалось, DolphinDB не знает, что этот запрос будет извлекать данные только из раздела 2019.03M,и что я получил, так это кортеж с 4 элементами:

(
    DataSource< select [7] * from pt where month(time) == 2019.03M [partition = 201901M] >,
    DataSource< select [7] * from pt where month(time) == 2019.03M [partition = 201902M] >,
    DataSource< select [7] * from pt where month(time) == 2019.03M [partition = 201903M] >,
    DataSource< select [7] * from pt where month(time) == 2019.03M [partition = 201904M] >
)

Что я действительно хотел, так это кортеж только с одним элементом:

(
    DataSource< select [7] * from pt where month(time) == 2019.03M [partition = 201903M] >
)

Я прочитал документацию для sqlDS функция, но, похоже, она не предоставляет аргумента для управления разделами на выбор.Я хотел бы знать, есть ли хороший способ ограничить выбор разделов при вызове sqlDS.

...