Расчет коэффициента очень мал, как мне использовать параллельные вычисления, чтобы ускорить его?

#sql #quantitative-finance #dolphindb

Вопрос:

Например, мне нужно рассчитать коэффициент Alpha147. Сценарий показан следующим образом:

 def alpha147SQL(vector) {  ... }  input = select tradingdate, symbol, closeprice from loadTable("dfs://xxxx", "level2") where tradingdate = 2020.01.02 alpha147DDBSql = select alpha147SQL(closeprice) from input context by symbol  

Комментарии:

1. Если вы используете SQL для вычисления чего-то тяжелого, то вам, вероятно, не следует этого делать. Найдите способы использования реальных языков программирования, таких как C/C /Java/Python

Ответ №1:

Вы можете использовать таблицу разделов в памяти для параллельного выполнения вычислений. Код для оптимизации показан ниже:

 def alpha147SQL(vector) {  ... }  input = select tradingdate, symbol, closeprice from loadTable("dfs://shenwan", "level2") where tradingdate = 2020.01.02 db = database("", HASH, [SYMBOL, 20]) pt = db.createPartitionedTable(input, "input", `symbol) pt.append!(input) timer(10) { pnodeRun(clearAllCache) } timer alpha147DDBSql = select alpha147SQL(closeprice) from pt context by symbol