В 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
.