1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/dolphindb-release

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 160 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 03:18 0a04dde

DolphinDB Release Notes

============================================================================================

Примечание: Этот файл README содержит примечания к выпуску для версии DolphinDB Server 2.00.10 и более ранних версий. Начиная с версии 2.00.11, этот файл больше не поддерживается. Чтобы получить примечания к выпуску и документацию по последней версии DolphinDB Server, обратитесь к новому сайту документации DolphinDB (https://docs.dolphindb.com/en/index.html).

============================================================================================

DolphinDB Server

Версия: 2.00.10     Уровень совместимости 2 с 2.00.9/1.30.21     Подробнее см. в разделе Изменения совместимости в версии 2.00.10

Дата выпуска: 2023-07-20

Linux64 бинарный файл | Linux64 JIT бинарный файл | Linux64 ABI бинарный файл | Windows64 бинарный файл | Windows64 JIT бинарный файл | Linux ARM64

Версия: 2.00.9     Уровень совместимости 2 с 2.00.8/1.30.20

Дата выпуска: 2023-02-15

Linux64 бинарный файл | Linux64 JIT бинарный файл | Linux64 ABI бинарный файл | Windows64 бинарный файл | Windows64 JIT бинарный файл | Linux ARM64

Версия: 2.00.8     Уровень совместимости 2 с 2.00.7/1.30.19

Дата выпуска: 2022-09-30

Linux64 бинарный файл | Linux64 JIT бинарный файл | Linux64 ABI бинарный файл | Windows64 бинарный файл | Windows64 JIT бинарный файл | Linux ARM64

Версия: 2.00.7     Уровень совместимости 1 с 2.00.6

Дата выпуска: 2022-07-14

Linux64 бинарный файл | Linux64 JIT бинарный файл | Linux64 ABI бинарный файл | Windows64 бинарный файл | Windows64 JIT бинарный файл | Linux ARM64

Версия: 2.00.6     Уровень совместимости DolphinDB: версии и релизы

Версия: 2.00.5     [Compatibility Level 2] с 2.00.4/1.30.16/1.30.17

Дата релиза: 2022-03-29

Бинарный файл Linux64 | JIT бинарный файл Linux64 | ABI бинарный файл Linux64 | Бинарный файл Windows64 | JIT бинарный файл Windows64

Версия: 2.00.4

Дата релиза: 2022-01-10

Бинарный файл Linux64 | JIT бинарный файл Linux64 | ABI бинарный файл Linux64

Версия: 2.0.0

Дата релиза: 2021-07-31

Бинарный файл Linux64 | JIT бинарный файл Linux64 | ABI бинарный файл Linux64 | Бинарный файл Windows64 | JIT бинарный файл Windows64

Новые функции

  • Добавлена новая функция appendTuple! для добавления кортежа к другому. (2.00.10.4)

  • Добавлен новый параметр конфигурации appendTupleAsAWhole для указания, должен ли кортеж добавляться как встроенный элемент кортежа или каждый из его элементов должен добавляться независимо к целевому кортежу. (2.00.10.4)

  • Добавлен новый параметр конфигурации parseDecimalAsFloatingNumber, который устанавливает поведение по умолчанию для анализа десятичных знаков в качестве типа DECIMAL. (2.00.10.4)

  • Поддержка операций обновления, вставки и удаления в секционированных таблицах MVCC. (2.00.10.4)

  • Длительно выполняющиеся распределённые запросы с использованием select или pivot by теперь можно отменить в любой момент во время выполнения. (2.00.10.4)

  • Добавлена функция cumdenseRank для возврата позиции ранжирования от первого элемента до текущего элемента. (2.00.10.4)

  • В журналах добавлена информация о входе в систему, включая пользователя входа, IP, порт, статус и т. д. (2.00.10.4)

  • Добавлена привилегия VIEW_OWNER для поддержки пользователя/группы для создания функциональных представлений с помощью addFunctionView. (2.00.10.4)

  • В SQL-запросах с предложением PIVOT BY теперь можно использовать функцию asis для сохранения всех повторяющихся записей в результате. Ранее PIVOT BY выполнял дедупликацию. (2.00.10.4)

  • В SQL-запросах с предложением PIVOT BY массивный вектор теперь может быть указан в операторе select/exec. (2.00.10.4)

  • Поддержка обрезки разделов, когда столбец разделения имеет тип NANOTIMESTAMP. (2.00.10.4)

  • Добавлен новый параметр isSequential в plugin.txt для маркировки функции как чувствительной к порядку или нет. (2.00.10.4)

  • Добавлен новый параметр «dataInterval» в параметр triggeringPattern функции createCrossSectionalEngine, который позволяет выполнять вычисления на основе временных меток из входных данных.(2.00.10.3

  • Добавлена функция parseJsonTable для анализа объекта JSON в таблицу в памяти. (2.00.10.2) * loadModuleFromScript для динамического анализа модуля. (2.00.10.2)

  • Оператор transaction может быть использован для таблиц MVCC. (2.00.10.2)

  • Добавлен новый параметр конфигурации tcpUserTimeout для установки опции сокета TCP_USER_TIMEOUT. (2.00.10.2)

  • Функция getClusterReplicationMetrics удалена. Добавлена функция getSlaveReplicationQueueStatus как наследование от getClusterReplicationMetrics. getSlaveReplicationQueueStatus получает статус каждой очереди выполнения в подчинённых кластерах. (2.00.10.2)

  • Добавлен параметр конфигурации clusterReplicationQueue для установки количества очередей выполнения на каждом контроллере подчинённых кластеров. (2.00.10.2)

  • Добавлен параметр конфигурации clusterReplicationWorkerNum для установки числа рабочих на каждом узле данных подчинённых кластеров. (2.00.10.2)

  • Поддержка RIGHT JOIN для нескольких таблиц DFS. (2.00.10)

  • Добавлены параметр конфигурации memLimitOfTempResult и функция setMemLimitOfTempResult для установки верхнего предела использования памяти для каждого временного результата, созданного при операции соединения таблиц. (2.00.10)

  • Добавлен параметр конфигурации tempResultsSpillDir для указания каталога разлива, в котором хранятся временные результаты, созданные при операции соединения таблиц. (2.00.10)

  • Добавлена поддержка core dumps с помощью параметра конфигурации enableCoreDump. Поддерживается только в Linux. (2.00.10)

  • Добавлен параметр конфигурации disableCoreDumpOnShutdown для определения, следует ли создавать дампы ядра при корректном завершении работы. Поддерживается только в Linux. (2.00.10)

  • Добавлен параметр конфигурации allowMissingPartitions для определения поведения при поступлении данных, содержащих новые значения разделов, которые не соответствуют существующим разделам. (2.00.10)

  • Функции listRemotePlugins и installPlugin добавлены для получения списка доступных плагинов и загрузки плагина соответственно. (2.00.10)

  • Параметр конфигурации volumeUsageThreshold добавлен для установки верхнего предела дискового пространства узла данных. (2.00.10)

  • Добавлена функция writeLogLevel для записи логов указанного уровня в файл журнала. (2.00.10)

  • Добавлена функция sessionWindow для группировки данных временных рядов на основе интервалов сеансов. (2.00.10)

  • Добавлена функция summary для генерации сводной статистики входных данных, включая min, max, count, avg, std и процентили. (2.00.10)

  • Функции encodeShortGenomeSeq и decodeShortGenomeSeq добавлены для кодирования и декодирования последовательностей ДНК. (2.00.10)

  • Добавлена функция genShortGenomeSeq для выполнения кодирования последовательностей ДНК в скользящем окне. (2.00.10)

  • Добавлена функция GramSchmidt для реализации ортогонализации Грамма–Шмидта. (2.00.10)

  • Добавлена функция lassoBasic, эквивалентная функции lasso, но принимающая векторы в качестве входных аргументов. (2.00.10)

  • Добавлено 26 функций TopN: (2.00.10)

    • m-функции: mskewTopN, mkurtosisTopN;
    • cum-функции: cumsumTopN, cumavgTopN, cumstdTopN, cumstdpTopN, cumvarTopN, cumvarpTopN, cumbetaTopN, cumcorrTopN, cumcovarTopN, cumwsumTopN, cumskewTopN, cumkurtosisTopN;
    • tm-функции: tmsumTopN, tmavgTopN, tmstdTopN, tmstdpTopN, tmvarTopN, tmvarpTopN, tmbetaTopN, tmcorrTopN, tmcovarTopN, tmwsumTopN, tmskewTopN, tmkurtosisTopN.
  • Добавлена функция initcap для установки первой буквы каждого слова в строке в верхний регистр, а остальных — в нижний. (2.00.10)

  • Для кубической сплайн-интерполяции добавлены функции splrep и splev. (2.00.10)

  • Добавлена функция scs для вычисления оптимального решения линейно ограниченных линейных или квадратичных программирующих функций. (2.00.10)

  • Поддерживается тип данных DECIMAL128. (2.00.10)

  • Для расчётов на основе строк добавлены функции rowPrev, rowNext, rowMove, rowCumsum, rowCumprod, rowCummax, rowCummin и rowCumwsum. (2.00.10)

  • Добавлена функция temporalSeq для генерации временных рядов через заданные интервалы. (2.00.10)

  • Добавлена функция ungroup для выравнивания столбцов, содержащих быстрые векторные массивы или столбчатые данные. (2.00.10) Кортежи.

  • Добавлена функция decimalMultiply для умножения данных типа DECIMAL.

  • Добавлены функции base64Encode и base64Decode для кодирования и декодирования цифр Base64.

  • Добавлена функция addFunctionTypeInferenceRule для определения правила вывода пользовательских функций в DolphinDB JIT версии.

  • Поддерживается тип данных COMPLEX в DolphinDB JIT версии.

  • Добавлен параметр конфигурации localSubscriberNum для установки количества потоков, распределяющих сообщения из очереди публикации в локальной подписке.

  • Добавлена функция createStreamDispatchEngine для создания механизма диспетчеризации потоковых данных.

  • Данные типа DECIMAL поддерживаются в механизме временных рядов и механизме реактивного состояния при использовании следующих функций:

    • Механизм временных рядов (созданный с помощью createTimeSeriesEngine): corr, covar, first, last, max, med, min, percentile, quantile, std, var, sum, sum2, sum3, sum4, wavg, wsum, count, firstNot, ifirstNot, lastNot, ilastNot, imax, imin, nunique, prod, sem, mode, searchK.

    • Реактивный механизм состояния (созданный с помощью createReactiveStateEngine): cumsum, cumavg, cumstd, cumvar, cumcorr, cumcovar, cumwsum, cumwavg, msum, mavg, mstd, mvar, mcorr, mcovar, mwsum, mwavg, tmsum, tmavg, tmstd, tmvar, tmcorr, tmbeta, tmwsum, tmwavg.

  • Константы теперь можно объявлять как тип DECIMAL с символом типа данных «P».

  • Добавлен новый параметр конфигурации logicOrIgnoreNull. Значение по умолчанию — true, что означает игнорирование значений NULL в операндах. Его следует установить в false, если вам нужно, чтобы поведение функции or соответствовало старым версиям.

  • Теперь поддерживается is null в предложении case when.

  • Добавлен параметр конфигурации mvccCheckpointThreshold для установки порога операций, запускающих контрольную точку.

  • Добавлена функция forceMvccCheckpoint для ручного запуска контрольной точки.

  • Добавлен сервер лицензий для управления ресурсами для узлов, указанных лицензией.

    • Связанные функции: getLicenseServerResourceInfo, getRegisteredNodeInfo.
    • Связанные параметры конфигурации: licenseServerSite, bindCores.
  • Добавлен параметр конфигурации thirdPartyAuthenticator для аутентификации входа пользователя через стороннюю систему.

  • Версия сервера теперь автоматически проверяется при загрузке плагина.

  • Поддержка асинхронной репликации между кластерами для обеспечения согласованности данных и аварийного восстановления на удалённых площадках.

  • Поддержка формата Apache Arrow.

  • Добавлена функция getTSDBSortKeyEntry для отображения информации о ключе сортировки всех фрагментов.

  • Добавлена команда setMaxConnections для динамической настройки максимального количества подключений на текущем узле.

  • Добавлена функция demean для центрирования набора данных. Эту функцию можно использовать в качестве функции состояния в реактивном механизме состояния.

  • Для функций dict и syncDict добавлен параметр ordered для создания упорядоченного словаря, в котором пары ключ-значение сортируются в том же порядке, что и входные данные.

  • Добавлена поддержка следующих бинарных операций:

    • словарь и словарь;
    • скаляр и словарь;
    • вектор и словарь.
  • Добавлена кумулятивная функция cumnunique для получения кумулятивного количества уникальных элементов. Эту функцию можно использовать как функцию состояния в реактивном механизме состояний.

  • Добавлена функция stringFormat для генерации строк с указанными значениями и заполнителями.

  • Добавлена функция rowAlign для выравнивания данных по строкам.

  • Добавлена функция nanInfFill для замены значений NaN и Inf.

  • Добавлена функция byColumn для применения функций к каждому столбцу матрицы. Функция также поддерживается в потоковой обработке. В запросе используется язык программирования Julia.

В ответе представлен перевод текста на русский язык:

Функция volumeBar для группировки данных на основе кумулятивной суммы (2.00.9).

  • Добавлена функция enlist, возвращающая вектор (или кортеж) со скаляром (или вектором) в качестве элемента (2.00.9).

  • Добавлен оператор eachAt(@) для доступа к элементам вектора/кортежа/матрицы/таблицы/словаря/массива по индексу (2.00.9).

  • Добавлены новые функции latestKeyedTable и latestIndexedTable для создания ключевой таблицы или индексированной таблицы с столбцом времени. Когда новая запись добавляется в таблицу, она перезаписывает существующую запись с тем же первичным ключом только в том случае, если её временная метка больше исходной (2.00.9).

  • Поддержка формата данных «столбцовый кортеж» (2.00.9)

    • Связанные функции: isColumnarTuple, setColumnTuple!.
  • Расширенная поддержка стандартных функций SQL (2.00.9):

    • Предложения: drop, alter, case when, union/union all, join on, with as, create local temporary table
    • Предикаты: (not) between and, is null/is not null, (not) exists/not exist, any/all
    • Функции: nullIf, coalesce
    • Ключевые слова: distinct
  • Поддерживаются множественные соединения, соединения с табличными псевдонимами и соединения с объектом таблицы, возвращаемым SQL-подзапросом (2.00.9).

  • SQL select может выбирать константу без указания псевдонима, и значение будет использоваться в качестве имени столбца (2.00.9).

  • Предикаты и операторы SQL могут применяться к результирующей таблице, возвращаемой SQL-подзапросом (2.00.9).

  • Добавлен параметр конфигурации oldChunkVersionRetentionTime для указания времени хранения старых версий чанков в системе (2.00.9).

  • Поддержка встроенных торговых календарей основных бирж и пользовательских торговых календарей. Эти календари можно использовать в функциях temporalAdd, resample, asFreq и transFreq для преобразования частоты (2.00.9).

    • Связанный параметр конфигурации: marketHolidayDir
    • Связанныe функции: addMarketHoliday, updateMarketHoliday и getMarketCalendar для добавления, обновления и получения пользовательских торговых календарей.
  • Добавлены функции genericStateIterate и genericTStateIterate для перебора потоковых данных с помощью скользящего окна (2.00.9).

  • Функция createWindowJoinEngine поддерживает векторы массивов (2.00.9).

  • Добавлены функции movingWindowData и tmovingWindowData для получения элементов в скользящем окне во время потоковой обработки (2.00.9).

  • Поддержка оператора if-else в реактивном механизме состояний (2.00.9).

  • Новый инструмент трассировки SQL для мониторинга времени, затраченного на весь процесс выполнения запроса. Добавлен параметр конфигурации traceLogDir для указания пути к журналу трассировки (2.00.8).

  • Добавлена новая функция truncate для удаления данных в таблице DFS при сохранении схемы таблицы (2.00.8).

  • Добавлена новая функция checkBackup для проверки целостности файлов резервных копий. Добавлена новая функция getBackupStatus для отображения подробной информации о заданиях резервного копирования и восстановления базы данных (2.00.8).

  • Добавлены новые функции backupDB, restoreDB, backupTable и restoreTable для резервного копирования / восстановления всей базы данных или таблицы (2.00.8).

  • Добавлен новый параметр конфигурации logRetentionTime для определения периода хранения системных журналов (2.00.8).

  • Добавлена новая функция triggerNodeReport для запуска отчёта о состоянии чанка для указанного узла данных (2.00.8).

  • Добавлена новая функция getUnresolvedTxn для получения транзакций в фазе разрешения (2.00.8).

  • Парсер потокового движка (streamEngineParser) теперь поддерживает указание пользовательских функций с вложенной функцией в качестве метрик (2.00.8).

  • Добавлена новая функция conditionalIterate для рекурсивного вычисления метрик через условную итерацию. Эту функцию можно использовать только в реактивном механизме состояния потока (createReactiveStateEngine) (2.00.8).

  • Добавлена новая функция stateMavg для расчёта скользящей средней на основе предыдущих результатов. Эту функцию также можно использовать только в реактивном механизме состояния потока (createReactiveStateEngine) (2.00.8). - Добавлена новая функция stateIterate для линейной рекурсии с помощью линейной итерации. Эту функцию можно использовать только в механизме реактивного потока состояний (createReactiveStateEngine). (2.00.8)

  • Механизм объединения окон (createWindowJoinEngine): когда параметр window=0:0, размер окна вычислений над правой таблицей определяется разницей между временными метками соответствующей записи в левой таблице и её самой последней записью. (2.00.8)

  • Добавлена поддержка нового типа данных DECIMAL. Хранение и вычисления с использованием типа данных DECIMAL также поддерживаются в некоторых функциях и механизмах хранения OLAP и TSDB. (2.00.8) Обратите внимание на следующее:

    1. Столбцы типа DECIMAL нельзя указывать как столбцы секционирования или столбцы сортировки (механизм TSDB), или сжимать с использованием метода «delta».
    2. Столбцы типа DECIMAL невозможно изменить или удалить с помощью функций addColumn/replaceColumn!/dropColumns!/rename!
    3. Тип данных DECIMAL не поддерживает подписку на потоковые данные и потоковые вычисления.
    4. loadText не поддерживает импорт столбцов, содержащих значения DECIMAL.
  • Добавлена новая функция regroup для агрегирования по группам на основе меток столбца и/или строк, заданных пользователем. (2.00.8)

  • Добавлены новые функции mifirstNot и milastNot для возврата индекса первого/последнего ненулевого элемента в скользящем окне. (2.00.8)

  • Добавлена новая функция loc для доступа к строкам и столбцам матрицы по метке(ам) или логическому вектору. (2.00.8)

  • Добавлена новая функция til для создания вектора последовательных целых чисел, начиная с 0. (2.00.8)

  • Добавлены новые функции pack и unpack для упаковки и распаковки двоичных данных. (2.00.8)

  • Добавлена новая функция align для выравнивания двух матриц на основе меток строк и/или столбцов с использованием указанного метода соединения. (2.00.8)

  • Теперь DFS table join поддерживает полное соединение. (2.00.8)

  • DolphinDB (JIT) теперь поддерживает доступ к элементам вектора по индексу, который может быть вектором или парой. (2.00.8)

  • Веб-интерфейс пользователя:

    • Улучшения вкладки «Shell»: добавлен новый вид «База данных» для проверки баз данных и таблиц. (2.00.8)
    • Добавлено новое меню настроек, где можно настроить количество знаков после запятой. Например, введите «2», чтобы отображать числа с двумя цифрами. (2.00.8)
    • Добавлена поддержка визуализации словарей. (2.00.8)
    • Теперь можно перейти к связанной документации, нажав на код ошибки (например, 'RefId: S00001'). (2.00.8)
  • Добавлены новые параметры конфигурации memLimitOfQueryResult и memLimitOfTaskGroupResult, чтобы ограничить использование памяти промежуточными и окончательными результатами запросов; добавлена новая функция getQueryStatus для мониторинга использования памяти и статуса выполнения запроса. (2.00.7)

  • Добавлена новая функция getTSDBCompactionTaskStatus для проверки состояния задач сжатия уровня в механизме TSDB. (2.00.7)

  • Добавлены новые функции isPeak и isValley для определения, является ли текущий элемент пиком/долиной соседних элементов. (2.00.7)

  • Добавлена новая функция rowAt(X, Y). Возвращает элемент в каждой строке X на основе индекса, указанного соответствующим элементом Y. (2.00.7)

  • Добавлены новые функции rowImin и rowImax для получения индекса экстремального значения в каждой строке. (2.00.7)

  • Добавлена новая функция машинного обучения gmm для поддержки алгоритмов кластеризации модели гауссовой смеси (GMM). (2.00.7)

  • Добавлена новая функция valueChanged для обнаружения изменений между элементами путём сравнения текущего элемента с соседними элементами. (2.00.7)

  • Добавлены новые функции msum2 и tmsum2 для расчёта суммы квадратов в скользящем окне. (2.00.7)

  • Добавлены новые функции prevState и nextState для поиска элемента с другим состоянием до/после текущего элемента. (Последовательные элементы с одинаковым значением считаются имеющими одинаковое состояние.) (2.00.7)

  • Добавлена новая функция getSupportBundle. Возвращает файл пакета поддержки, содержащий информацию о конфигурации системы и базе данных. 2.00.7

  • Добавлены новые функции topRange и lowRange. Для каждого элемента в X возвращают максимальную длину окна слева от X, где оно является максимальным/минимальным. Функции также поддерживаются в механизме реактивного состояния (createReactiveStateEngine). (2.00.7)

  • Добавлены интерполяционные функции spline, neville, dividedDifference и loess. (2.00.7)

  • В механизм реактивного состояния добавлен новый параметр cumPositiveStreak (createReactiveStateEngine). (2.00.7)

  • Представлен новый механизм потоковой передачи данных с двойным владением и реактивным состоянием (createDualOwnershipReactiveStateEngine) с поддержкой параллельных вычислений данных двумя методами группировки и различными метриками. (2.00.7)

  • Предложен новый объект таблицы IPCInMemoryTable — межпроцессная таблица в памяти. Добавлены связанные функции createIPCInMemoryTable, loadIPCInMemoryTable, dropIPCInMemoryTable и readIPCInMemoryTable. Межпроцессную таблицу в памяти можно использовать в сценариях потоковой передачи для обеспечения эффективной передачи данных между сервером DolphinDB и клиентом на одном компьютере. (2.00.7)

  • Добавлена новая функция stretch для равномерного растяжения вектора до указанной длины. (2.00.7)

  • Добавлена функция getTransactionStatus для получения статуса транзакций. Добавлена команда imtForceGCRedolog для пропуска сборки мусора транзакции с указанным ID. (2.00.7)

  • Добавлен новый модуль ops для операций с базой данных. Этот модуль содержит несколько часто используемых скриптов для таких операций, как отмена незавершённых заданий в кластере, просмотр использования диска таблицы DFS, удаление восстанавливаемых разделов, закрытие неактивных сеансов и т. д. (2.00.7)

  • Добавлена новая функция setLogLevel для динамической настройки уровня журнала на текущем узле. (2.00.7)

  • Добавлена новая функция cells для извлечения нескольких ячеек из матрицы по указанным индексам строки и столбца. (2.00.6)

  • Добавлена новая функция randDiscrete для выборки из дискретного распределения вероятностей. (2.00.6)

  • Добавлены новые функции dynamicGroupCumsum и dynamicGroupCumcount, а также их функции состояния в механизме потокового реактивного состояния. (2.00.6)

  • Добавлена новая функция getTSDBCompactionTaskStatus для получения статуса задач сжатия файлов уровня движка TSDB. (2.00.6)

  • Добавлена новая функция createDistributedInMemoryTable для создания распределённой таблицы в памяти. (2.00.6)

  • Поддержка многоуровневого хранилища для хранения холодных данных на медленных жёстких дисках или в хранилище объектов (Amazon S3). Эти данные доступны только для чтения. (2.00.6)

  • В функцию createPartitionedTable движка TSDB добавлен новый параметр sortKeyMappingFunction для применения функций отображения к ключу сортировки для оптимальной производительности. (2.00.6)

  • Оптимизирована производительность обновления в движке TSDB. (2.00.6)

  • Добавлена новая функция toCharArray для разделения строки на вектор символов. (2.00.6)

  • Добавлен новый конфигурационный параметр maxDynamicLocalExecutor для указания максимального количества динамически генерируемых локальных исполнителей и частоты их генерации. (2.00.6)

  • Добавлено выражение transaction для инкапсуляции нескольких SQL-выражений в таблице в памяти или общей таблице в одну транзакцию. (2.00.6)

  • Поддерживается асинхронная сортировка данных в кэше движка TSDB. Укажите конфигурационный параметр TSDBAyncSortingWorkerNum как количество потоков для асинхронной сортировки, значение по умолчанию — 1. (2.00.5)

  • Изоляция моментальных снимков поддерживается в движке TSDB. (2.00.5)

  • Движок TSDB можно использовать в Windows. (2.00.5)

  • Можно включить dataSync для движка OLAP, установив конфигурационный параметр dataSync = 1 в Windows. (2.00.5)

  • В функцию subscribeTable добавлены новые параметры userId и password. Система попытается войти в систему после того, как пользователь случайно выйдет из системы, чтобы убедиться, что подписанные данные могут быть записаны в таблицу DFS. (2.00.5)

  • Для параметра metrics механизма потокового реактивного состояния можно указать функцию, возвращающую массив векторов. (2.00.5) getStreamingStat().subWorkers возвращает значение throttle в миллисекундах.

  • Можно указать несколько подходящих столбцов для механизма соединения asof.

  • Добавлены новые параметры snapshotDir и snapshotIntervalInMsgCount в механизм потоковой передачи поперечного сечения, чтобы включить моментальный снимок; добавлен новый параметр raftGroup, чтобы обеспечить высокую доступность.

  • Добавлены новые функции getLeftStream и getRightStream, чтобы поддерживать каскад механизмов соединения.

  • Если функция с несколькими возвращаемыми значениями указана для параметра metrics механизма потоковой передачи поперечного сечения (createCrossSectionalEngine) или механизма потоковой передачи временных рядов (createTimeSeriesEngine), то имена возвращаемых столбцов можно не указывать при создании механизма потоковой передачи.

  • Добавлена новая команда addAccessControl, чтобы добавить контроль доступа к общей таблице в памяти (включая таблицу потоков) или объекту механизма потоковой передачи.

  • При применении агрегатной функции, такой как quantile, к столбцу таблицы, если тип данных столбца не поддерживается, результатом будет значение NULL.

  • Предложение SQL pivot by поддерживает столбцы типа UUID.

  • Верхний предел результата функций ceil или floor увеличен до 2^53.

  • Если последний столбец предложения pivot by является столбцом разделения, и в предложении select не включены агрегированные или чувствительные к порядку функции, производительность была оптимизирована почти в пять раз.

  • Функции med, kama и wma теперь поддерживают векторы типа BOOL.

  • Параметр colNames команды addColumn может начинаться с цифры.

  • Когда загружается файл csv с помощью функций loadText или loadTextEx, верхний предел для первой строки данных увеличен до 256 КБ.

  • Агрегатные функции, оконные функции и векторизованные функции поддерживают таблицу в качестве входных данных.

  • Параметр count функций rand или normal поддерживает пару, чтобы указать размер матрицы.

  • Логические функции на основе строк (rowAnd, rowOr и rowXor) поддерживают ввод типа INT.

  • Добавлен новый параметр arrayDelimiter в функции loadText и loadTextEx для загрузки файлов csv, содержащих векторы массивов.

  • Добавлен новый параметр closed в функцию bar, чтобы указать, является ли левая или правая граница включительной в каждой группе.

  • Для скользящей функции, когда X представляет собой индексированный ряд или индексированную матрицу, а window — положительное целое число, окно скользит по индексу.

  • Параметры определяемой пользователем функции могут быть определены в нескольких строках и разделены запятой.

  • В предложении SQL order by можно ссылаться на столбец по его имени или псевдониму as.

  • Теперь можно указать вектор типа SECOND, TIME или NANOTIME для параметра X функции dailyAlignedBar.

  • Сервер может передавать таблицы, содержащие векторы массива, в API Python в формате pickle.

  • Добавлен новый параметр forceTriggerSessionEndTime в ежедневный механизм потоковой передачи временных рядов, чтобы указать время ожидания для запуска вычисления в окне, содержащем sessionEnd.

  • Изменён параметр forceTriggerTime ежедневного механизма потоковой передачи временных рядов и механизма потоковой передачи временных рядов. Вычисление в незавершённом окне группы может быть инициировано последними полученными данными любой другой группы. Если установлен параметр fill, используются указанные методы заполнения для заполнения результатов пустых окон тем временем.

  • Таблицы в одном разделе теперь можно обновлять, записывать и удалять одновременно.

  • Тип данных, записываемых во временный столбец таблицы в памяти, будет автоматически преобразован в тип данных этого столбца.

  • Узел данных теперь можно восстановить онлайн с последними данными из других узлов. Также можно включить асинхронное восстановление через конфигурацию.

  • Теперь вы можете управлять и запрашивать все вычислительные задачи в... Кластер (2.00.4)

  • Таблицы в памяти и потоковые таблицы теперь поддерживают тип данных BLOB (2.00.4).

  • Теперь вы можете использовать новый тег [HINT_EXPLAIN] в своём операторе SQL, чтобы вернуть строку JSON, указывающую на процесс выполнения оператора (2.00.4).

  • Добавлена новая функция streamEngineParser для разложения поперечного фактора на конвейер с несколькими встроенными потоковыми механизмами. Эта функция анализирует указанные метрики для построения расчётного конвейера, где несколько встроенных механизмов обрабатывают потоковые данные последовательно (2.00.4).

  • Добавлена новая функция existSubscriptionTopic для проверки того, была ли создана тема подписки (2.00.4).

  • Добавлена новая функция createLookupJoinEngine для поддержки левого соединения потоковой таблицы и таблицы с нечастыми обновлениями данных (2.00.4).

  • Добавлена новая функция moveChunksAcrossVolume. Когда добавляется новый том, используйте эту функцию для перемещения кусков из старого тома в новый (2.00.4).

  • Когда добавляется новый том, теперь вы можете использовать функцию resetDBDirMeta для перемещения металога старого тома в новый (2.00.4).

  • Добавлено 10 новых функций TopN: msumTopN, mavgTopN, mstdpTopN, mstdTopN, mvarTopN, mvarpTopN, mcorrTopN, mbetaTopN, mcovarTopN и mwsumTopN. Эти функции можно использовать в качестве функций состояния в реактивном механизме состояний (2.00.4).

  • Добавлены новые функции makeKey и makeOrderedKey для объединения нескольких столбцов в столбец BLOB, который можно использовать как ключ словаря или набора (2.00.4).

  • Добавлена новая более высокая функция aggrTopN, которая сортирует данные на основе указанного столбца сортировки и возвращает результаты агрегатных вычислений первых N строк в таблице (2.00.4).

  • Добавлены новые более высокие функции window и twindow для более общих сценариев, чем move и tmove, с немного другой обработкой границ окна (2.00.4).

  • Добавлен новый параметр конфигурации raftElectionTick, который указывает время ожидания получения пульса от лидера в группе raft перед тем, как последователи переключатся на нового лидера. Добавлены новые функции setCacheEngineMemSize, setTimeoutTick, setTSDBCacheEngineSize, setMaxMemSize, setReservedMemSize и setMaxBlockSizeForReservedMemory для поддержки изменения связанной конфигурации онлайн (2.00.4).

  • Добавлена новая функция fixedLengthArrayVector для объединения нескольких векторов в векторный массив (2.00.4).

  • Добавлена новая функция loadNpz для импорта файлов .npz из NumPy (2.00.4).

  • Добавлена новая функция suspendRecovery для приостановки задач восстановления узла и добавлена resumeRecovery для возобновления задач восстановления (2.00.4).

  • Добавлены новые функции rowCorr, rowCovar, rowBeta, rowWsum и rowWavg для расчёта на основе строк (2.00.4).

  • Добавлены новые функции movingWindowIndex и movingTopNIndex для получения индекса элементов в движущемся окне. Результатом является векторный массив типа INDEX[] (2.00.4).

  • Добавлена новая функция fflush для очистки данных буфера в вашу файловую систему (2.00.4).

  • Выпущен механизм хранения TSDB. Функция database предоставляет необязательный параметр engineType, значение по умолчанию — OLAP, это старый механизм хранения. Если вы создаёте базу данных на основе механизма хранения TSDB, установите engineType в TSDB (2.00.0).

  • Данные на основе механизма хранения TSDB поддерживают новый тип данных BLOB (2.00.0).

Улучшения

  • Объект разрешений (параметр objs) может быть указан как '*', когда доступ применяется на глобальном уровне (2.00.10.8).

  • Когда включена асинхронная репликация кластера, операции над пустыми таблицами в ведомом кластере будут вызывать исключение (2.00.10.8).

  • Оптимизирована производительность записи механизма TSDB (2.00.10.4).

  • Оптимизирована производительность функции dropTable при удалении секционированной таблицы с более чем 100 000 секций (2.00.10.4).

  • Делитель div/mod теперь может быть отрицательным числом (2.00.10.4).

  • Новый каталог будет создан автоматически, если не удастся найти настроенный persostenceOffsetDir (2.00.10.4). Задачи повтора теперь можно отменять быстрее (2.00.10.4):

  • Оптимизированы транзакции на вычислительных узлах (2.00.10.2).

  • В функцию rmdir добавлен параметр keepRootDir, чтобы указать, сохранять ли корневой каталог при удалении файлов (2.00.10.2).

  • Функция license по умолчанию получает информацию о лицензии из памяти (2.00.10.2).

  • Функция getClusterDFSTables возвращает все таблицы, созданные пользователем, независимо от разрешений таблицы (2.00.10.2).

  • Пустую таблицу можно скопировать для резервного копирования (2.00.10.2).

  • Асинхронная репликация оптимизирована (2.00.10.2)

    • После включения асинхронной репликации глобально система теперь разрешает операции с базами данных ведомых кластеров, которые не включены в область репликации.
    • Улучшен механизм извлечения задач репликации с главного на подчиненные кластеры.
  • Сообщение об ошибке теперь содержит больше деталей (2.00.10.2).

  • Оптимизирован вывод журнала функции subscribeTable (2.00.10.2).

  • Повышена производительность одновременных операций чтения и записи для механизма TSDB (2.00.10.2).

  • Пользовательская функция позволяет установить значение параметра по умолчанию как пустой кортеж (представленный как []) (2.00.10.1).

  • Добавлен контроль доступа пользователя к функции loadText (2.00.10.1).

  • Изменения прав доступа пользователей регистрируются (2.00.10.1).

  • Функцию повторной выборки можно использовать с матрицей с нестрого возрастающими метками строк в качестве входного аргумента (2.00.10.1).

  • Поведение соединения для кортежей оптимизировано (2.00.10.1).

  • Тернарную функцию можно передать в качестве входного аргумента шаблону накопления в механизме реактивного состояния (2.00.10.1).

  • Для streamEngineParser добавлена проверка параметров: если triggeringPattern='keyCount', то keepOrder должен быть истинным (2.00.10.1).

  • Параметры конфигурации localExecutors и maxDynamicLocalExecutor были удалены (2.00.10).

  • Функции window и percentChange можно использовать в качестве функций состояния в механизме реактивного состояния (2.00.10).

  • Поддерживается JOIN для нескольких секционированных таблиц (2.00.10).

  • Производительность улучшена при использовании функции dropTable для удаления таблицы с большим количеством разделов (2.00.10).

  • Производительность оптимизирована при фильтрации данных с предложением WHERE в базе данных TSDB (2.00.10).

  • Улучшена производительность при объединении таблиц базы данных TSDB (2.00.10).

  • Расширена поддержка стандартных SQL-соединений. Столбец соединения может быть любым столбцом из таблиц или столбцом, к которому применяются функции или который фильтруется условными выражениями (2.00.10).

  • Поддержка LEFT JOIN, FULL JOIN и INNER JOIN для двух таблиц со столбцом соединения одной таблицы типа STRING и другой таблицы интегрального типа (2.00.10).

  • Поддержка SELECT NOT для таблиц DFS (2.00.10).

  • Ключевые слова SQL поддерживаются в любом регистре (2.00.10).

  • Поддержку запятой (,) для CROSS JOIN таблиц (2.00.10).

  • Поддерживаются разрывы строк для операторов SQL, при этом ключевые слова, состоящие из нескольких слов, такие как ORDER BY, GROUP BY, UNION ALL, INNER JOIN, нельзя разбивать на две строки (2.00.10).

  • Реализация select * from a join b изменена с select * from join(a, b) на select * from cj(a, b) (2.00.10).

  • Оператор <> поддерживается в операторах SQL, что эквивалентно != (2.00.10).

  • Ключевое слово NOT LIKE поддерживается в операторах SQL (2.00.10).

  • При LEFT JOIN, LEFT SEMI JOIN, RIGHT JOIN, FULL JOIN или EQUI JOIN на столбцах, содержащих значения NULL (2.00.10):

    • В предыдущих версиях: значение NULL сопоставляется с другим значением NULL.
    • Начиная с текущей версии: значение NULL не может быть сопоставлено с другим значением NULL.
  • Для функции sqlDS таблица DFS, разделённая DATEHOUR, выбранная в sqlObj, теперь будет правильно фильтроваться по дате (2.00.10).

  • Объединение файлов для механизма TSDB оптимизировано для снижения потребления памяти (2.00.10).

  • Архитектура хранения для механизма TSDB оптимизирована с меньшим количеством блоков для уменьшения использования памяти (2.00.10).

  • Добавлено несколько новых параметров. Левое полусоединение engine для подписки на таблицу, содержащую векторы массивов. (2.00.10)

  • При использовании функции share или функции enableTableShareAndPersistence для многократного совместного использования одной и той же таблицы будет выдана ошибка. (2.00.10)

  • Будет выдана ошибка, если данные типа INT будут добавлены в столбец SYMBOL левой таблицы механизма оконного соединения. (2.00.10)

  • Поддерживается сериализация векторов массивов типов UUID, INT128 и IP с помощью pickle. (2.00.10)

  • Версия DolphinDB JIT поддерживает оператор join (<-). (2.00.10)

  • Функция isort в версии JIT может принимать кортеж с векторами одинаковой длины в качестве входных данных. (2.00.10)

  • Выражение if в версии JIT поддерживает оператор in. (2.00.10)

  • Доступ к векторам можно получить с логическим индексом в версии JIT. (2.00.10)

  • Поддержка комментариев с несколькими разделами /**/ в одной строке. (2.00.10)

  • Теперь функция stringFormat поддерживает: сопоставление типов данных, выравнивание формата, десятичные цифры и преобразование базы. (2.00.10)

  • Второй параметр функции concat может быть NULL. (2.00.10)

  • Функция take может принимать в качестве входных данных кортеж или таблицу. (2.00.10)

  • Функция stretch может принимать матрицу или таблицу в качестве входных данных. (2.00.10)

  • Функции in и find поддерживают таблицы с одним столбцом. (2.00.10)

  • Когда параметр moduleDir настроен как относительный путь, система ищет модули в каталоге homeDir/modules. (2.00.10)

  • Результат функций in, binsrch, find или asof принимает тот же формат, что и входной аргумент Y. (2.00.10)

  • Возникает ошибка при передаче кортежа функции rank. (2.00.10)

  • Добавлено ключевое слово distinct для устранения повторяющихся записей. В настоящее время не поддерживается использование с group by, context by или pivot by. (2.00.9.7)

  • Параметр outputElapsedInMicroseconds функции createTimeSeriesEngine переименован в outputElapsedMicroseconds. (2.00.9.4)

  • Поля «createTime» и «lastActiveTime», возвращаемые функцией getSessionMemoryStat, теперь отображаются в местном времени. (2.00.9.4)

  • Расширенная поддержка between and со стандартными функциями SQL. (2.00.9.4)

  • Больше операций с таблицами IPC в памяти регистрируются для лучшего отслеживания и отладки. (2.00.9.4)

  • Функция getClusterDFSTables возвращает таблицы DFS, к которым у пользователя есть доступ. (2.00.9.3)

  • Параметр leftTable функции createWindowJoinEngine поддерживает столбцы векторов массива. (2.00.9.3)

  • Параметр handler функции subscribeTable поддерживает общую таблицу в памяти, таблицу с ключами и индексированную таблицу. (2.00.9.3)

  • Функция cut теперь поддерживает таблицы/матрицы. (2.00.9.3)

  • Упорядоченный словарь теперь поддерживает унарные оконные функции. (2.00.9.3)

  • Поддержка контрольной суммы для файлов метаданных. (2.00.9)

  • Чтобы избежать чрезмерного использования диска журналом восстановления, задачи восстановления теперь будут очищаться для последователя, который был переключён с лидера. (2.00.9)

  • Все действия по резервному копированию и восстановлению полностью регистрируются. (2.00.9)

  • Добавлены новые параметры close, label, origin для функции interval. (2.00.9)

  • Функция getRecentJobs возвращает «clientIp» и «clientPort», указывающие на клиентский IP-адрес и порт. (2.00.9)

  • Добавлен новый параметр warmup для функции ema. Если установлено значение true, элементы в первых (window-1) окнах вычисляются. (2.00.9)

  • Унарные и тернарные функции теперь могут быть указаны для функций более высокого порядка accumulate и reduce. (2.00.9)

  • Добавлен новый параметр outputElapsedMicroseconds для реактивного механизма состояний и механизма временных рядов для вывода прошедшего времени. (2.00.9)

  • Поддержка вектора DECIMAL. (2.00.9)

  • Добавлен новый параметр precision для функций rank и rowRank для установки точности сортируемых значений. (2.00.9)

  • Параметр mode функции groups поддерживает «vector» и «tuple». (2.00.9)

  • Функция linearTimeTrend поддерживает вычисления матрицы или таблицы. (2.00.9) Используя функции высшего порядка. Добавлен новый параметр consistent для функций высшего порядка eachLeft, eachRight, eachPre, eachPost и reduce для определения типа данных результатов и формы задач. (2.00.9)

  • Функция objectChecksum поддерживает тип DECIMAL. (2.00.9)

  • Параметр tiesMethod функций rank и rowRank поддерживает «first» для присвоения рангов равным значениям в порядке их появления в векторе. (2.00.9)

  • Функция cut теперь поддерживает скаляр. (2.00.9)

  • Функция split теперь поддерживает вектор STRING. (2.00.9)

  • Функция rowAt теперь поддерживает векторный массив. (2.00.9)

  • Доступ к строкам матрицы теперь можно получить с помощью slice. (2.00.9)

  • Размер кортежа больше не ограничен 1048576. (2.00.9)

  • Расширенная поддержка типа DECIMAL в большинстве встроенных функций. (2.00.9)

  • Аргумент defaultValue, передаваемый функции array, теперь поддерживает тип STRING. (2.00.9)

  • Функция memSize теперь возвращает использование памяти кортежем. (2.00.9)

  • Результаты запросов разных разделов теперь могут быть объединены через несколько потоков, чтобы сократить затраченное время на фазу слияния. (2.00.9)

  • Функция getSessionMemoryStat теперь возвращает связанную информацию о кэше. (2.00.9)

  • Комментарии столбцов теперь можно добавлять в таблицы mvcc с помощью setColumnComment. (2.00.9)

  • Оптимизирована производительность точечного запроса механизма TSDB. (2.00.9)

  • Оптимизировано выполнение команды select count(*) в механизме TSDB при указании keepDuplicates = last. (2.00.9)

  • К матрицам теперь можно обращаться с парой и вектором в качестве индекса. (2.00.9)

  • Изменён фактический объём доступной памяти, настроенной параметром regularArrayMemoryLimit. (2.00.9)

  • Изменено верхнее ограничение на количество баз данных и таблиц DFS. (2.00.9)

  • Для баз данных TSDB типы данных временных ключей сортировки могут автоматически преобразовываться. (2.00.9)

  • Издатель будет отправлять потоковые данные подписчику, используя TCP-соединение, установленное подписчиком. Подписчику больше не нужно предоставлять порт прослушивания. (2.00.9)

  • Механизм реактивного состояния поддерживает векторные массивы с неопределённой длиной. (2.00.9)

  • Условие фильтра функции streamfilter поддерживает встроенные функции. (2.00.9)

  • Добавлен новый параметр sortColumns для функции replay для сортировки данных с одинаковой временной меткой. (2.00.9)

  • Поддержка автоматического выравнивания источников данных для воспроизведения N-to-1. (2.00.9)

  • При использовании m-функций в потоковых механизмах размер окна ограничен 102400. (2.00.9)

  • Оптимизация производительности гетерогенного воспроизведения. (2.00.9)

  • Функция streamEngineParser теперь поддерживает функцию byRow, вложенную в функцию contextby, в качестве метрик для механизма поперечного сечения. (2.00.9)

  • Поддерживается функция высшего порядка accumulate в потоковой передаче. (2.00.9)

  • Оптимизирована производительность функции genericTStateIterate. (2.00.9)

  • Оптимизирована производительность функции streamEngineParser. (2.00.9)

  • Операции append / insert into для общих таблиц могут быть реализованы с использованием транзакций операторов. (2.00.9)

  • Оптимизирована производительность ej для секционированных таблиц. (2.00.9)

  • Оператор select теперь поддерживает использование псевдонима столбца или нового имени столбца в качестве условия фильтра в предложении where. (2.00.9)

  • Оптимизирована производительность ключевого слова pivot by, когда последний столбец является столбцом разделения. (2.00.9)

  • Ключевое слово context by теперь поддерживает указание матрицы и таблицы. (2.00.9)

  • Оптимизирована производительность context by и group by. (2.00.9)

  • Оптимизирована производительность lsj при больших объёмах данных. (2.00.9)

  • Временные типы данных в SQL-предложении where теперь могут автоматически преобразовываться при использовании interval для группировки данных. (2.00.9)

  • Размер кортежа больше не ограничивается при использовании в SQL в условии. (2.00.9)

  • Модифицировано возвращаемое значение функции getSystemCpuUsage. (2.00.9)

  • Улучшена поддержка контроля доступа (2.00.9):

    • расширены типы привилегий на уровне таблиц. (TABLE_INSERT/TABLE_UPDATE/TABLE_DELETE) и на уровне базы данных (DB_INSERT/DB_UPDATE/DB_DELETE).
  • Изменена привилегия DB_MANGE, которая больше не позволяет создавать базы данных. Пользователи с этой привилегией могут выполнять только операции DDL в базах данных.

  • Изменена привилегия DB_OWNER, которая позволяет пользователям создавать базы данных с указанными префиксами.

  • Добавлены типы привилегий QUERY_RESULT_MEM_LIMIT и TASK_GROUP_MEM_LIMIT для установки верхнего предела использования памяти запросами.

  • Функции, связанные с контролем доступа, теперь можно вызывать на узлах данных.

  • Изменён механизм проверки разрешений для операций DDL/DML.

  • Добавлена проверка параметров для контроля доступа:

    • Если детализация объектов не соответствует типу доступа grant, deny или revoke, то сообщается об ошибке.
    • Когда предоставляется разрешение TABLE_READ/TABLE_WRITE/DBOBJ_*/VIEW_EXEC, сначала проверяется существование применяемого объекта (базы данных/таблицы/представления функции). Если его нет, сообщается об ошибке.
    • При удалении объекта (базы данных/таблицы/представления функции) применяемые разрешения отзываются. Если позже создаётся новый объект с тем же именем, разрешения необходимо переназначить.
    • Разрешения сохраняются для переименованных таблиц.

Оптимизация производительности пользовательских функций в потоковых движках DolphinDB (JIT). (2.00.9)

DolphinDB (JIT) поддерживает оператор ratio. (2.00.9)

DolphinDB (JIT) поддерживает больше встроенных функций: sum, avg, count, size, min, max, iif, moving. (2.00.9)

Функции backup, restore и migrate поддерживают резервное копирование и восстановление разделов базы данных путём копирования файлов. (2.00.8)

Функции replaceColumn!, rename! и dropColumn! теперь поддерживают таблицы DFS. (2.00.8)

Добавлен новый параметр deleteSchema к функции dropPartition для определения, следует ли удалять схему раздела при удалении раздела VALUE. (2.00.8)

Функция dropDatabase удаляет все физические файлы для указанной базы данных. (2.00.8)

Метакод SQL-операторов может быть передан параметру obj функции saveText. Разделы можно запрашивать параллельно и записывать одним потоком. (2.00.8)

Система выдаёт сообщение об ошибке, если вы указываете конфигурационный параметр volumes для одного узла с использованием макропеременной . (2.00.8)

Поддержка ключевого слова SQL like в предложении where для поиска указанного шаблона ключей сортировки в движке TSDB. (2.00.8)

Оптимизирована производительность чтения в движке TSDB. (2.00.8)

Оптимизировано выполнение операций обновления, удаления и upsert в механизме хранения TSDB. (2.00.8)

Добавлен параметр nullFill к функции createWindowJoinEngine для заполнения значений NULL в выходной таблице. (2.00.8)

Параметр timeRepartitionSchema функции replayDS поддерживает больше временных типов. (2.00.8)

Оптимизирован алгоритм сборки мусора в оконном соединительном механизме. (2.00.8)

Идентичные выражения с использованием пользовательских функций вычисляются только один раз в реактивном механизме потока состояний. (2.00.8)

Добавлено ключевое слово SQL HINT_VECTORIZED для включения векторизации для группировки данных. (2.00.8)

Оптимизирована производительность запросов, когда столбец группы — это столбец разделения VALUE. (2.00.8)

Оптимизирована производительность левого соединения таблицы в памяти и таблицы DFS. (2.00.8)

Оптимизирована производительность предложения SQL pivot by. (2.00.8)

Оптимизирована вычислительная производительность функции rolling. (2.00.8)

Функция getBackupList возвращает столбец «updateTime» для последнего времени обновления и столбец «rows» для количества записей в разделе. (2.00.8)

Добавлен новый ключ «rows» в словарь, возвращаемый функцией getBackupMeta, чтобы показать количество строк в разделе. (2.00.8)

Добавлен необязательный параметр containHeader к функциям loadText, ploadText, loadTextEx и textChunkDS для указания, содержит ли файл заголовок строки. (2.00.8)

Доступ ограничен к 31 функции, которые могут выполняться только зарегистрированным пользователем или администратором. Обновление лицензии вызывает исключение, если режим авторизации изменился. (2.00.8)

При срезе вектора не генерируется исключение, даже если индексы выходят за границы. (2.00.8)

При обращении к вектору по индексу в DolphinDB (стандартная и JIT-версия) возвращаются значения NULL, если индексы выходят за пределы. (2.00.8)

Оптимизирован алгоритм CRC32. (2.00.8)

Оптимизирована функция mrank. (2.00.8)

Максимальная длина данных, преобразованных функцией toJson, больше не ограничена 1000 символами. (2.00.8)

Веб-интерфейс пользователя:

— улучшено выделение кода для соответствия расширению DolphinDB для Visual Studio Code. (2.00.8);

— числовые значения форматируются с использованием запятой (,) в качестве разделителя тысяч, например, 1 000 000 000. (2.00.8);

— обновлены ключевые слова, автозаполнение кода и документация функций. (2.00.8);

— информация о выполнении отображается в более компактном формате. (2.00.8);

— расширено представление всплывающего окна «статус» для отображения информации о статусе в различных категориях. (2.00.8);

— усовершенствован дизайн пагинации таблиц и добавлены всплывающие подсказки для кнопок-иконок. (2.00.8);

— улучшения вкладки «Задание»: скорректированы имена полей; добавлена поддержка поиска заданий по IP-адресу клиента. (2.00.8);

— исправлена проблема некорректного форматирования временных меток на графике. (2.00.8)

Функция getClusterPerf(true) возвращает информацию обо всех контроллерах в кластере высокой доступности. Эта функция также добавляет возвращаемое значение isLeader, чтобы указать, является ли контроллер лидером группы raft. (2.00.7)

Теперь при подключении к контроллеру кластера высокой доступности через веб-менеджер кластеров вы будете перенаправлены на лидера, где отображается информация обо всех узлах. (2.00.7)

При использовании функций restore, loadBackup или getBackupMeta для доступа к разделам резервных копий в базе данных, чья гранулярность чанков находится на уровне TABLE, физический индекс больше не требуется при указании параметра partition. (2.00.7)

В функцию getRecoveryTaskStatus добавлено новое возвращаемое значение FailureReason для отображения причины сбоя задачи восстановления. (2.00.7)

Оптимизирован алгоритм сжатия для backup. (2.00.7)

Если jobId не существует при использовании cancelJob, система больше не выдаёт исключение. Вместо этого она выводит сообщение об ошибке с jobId в журнал. (2.00.7)

Теперь можно указать конфигурационный параметр persistenWorkerNum для таблицы высокой доступности потока. (2.00.7)

Добавлен новый параметр forceTriggerTime в createSessionWindowEngine для запуска расчёта в последнем окне, если useSystemTime=false. (2.00.7)

При обработке стандартных потоковых таблиц с помощью streamFilter теперь можно указывать метакод логических выражений для условия фильтра. (2.00.7)

Можно включить столбец времени и/или столбец соединения из левой или правой таблицы в качестве выходных столбцов в параметре metrics функций createEqualJoinEngine, createAsofJoinEngine и createLookupJoinEngine. (2.00.7)

replay поддерживает разнородные потоковые таблицы со столбцами массивов векторов. (2.00.7)

Параметр keyPurgeFilter функции createReactiveStateEngine должен быть метакодом логических выражений, иначе будет выдана ошибка. (2.00.7)

Параметр metrics функции createLookupJoinEngine может быть кортежем. (2.00.7)

Оптимизировано выполнение функции select count(*), когда гранулярность времени предложения group by более грубая, чем у раздела. (2.00.7)

Оптимизировано выполнение запроса последних n записей, отсортированных в порядке убывания с предложением top или limit. (2.00.7)

Оптимизировано выполнение следующих функций при вызове функции rolling: cumsum, cummax, cummin, cumprod и mcount. (2.00.7)

Файл tar.gz для автономной установки сервера. (2.00.7)

Переименованы следующие параметры конфигурации и функции для OLAP-хранилища, а исходные имена используются как... Оптимизация и улучшения в версии 2.00.7:

  • Псевдонимы: chunkCacheEngineMemSize → OLAPCacheEngineSize, purgeCacheEngine → flushOLAPCache, setCacheEngineMemSize → setOLAPCacheEngineSize и getCacheEngineMemSize → getOLAPCacheEngineSize.

Другие изменения в версии 2.00.7:

  • Оптимизирована производительность запросов в два раза, когда предложение context by указывает на столбец секционирования.
  • Добавлен параметр конфигурации enableDropPartitionSchema для удаления соответствующей partitionSchema, возвращаемой функцией schema после вызова dropPartition.
  • Подписка начинается с последних входящих данных, если не удаётся найти сохранённый офсет.
  • Можно указать 00:00:00 для параметра sessionEnd функции createDailyTimeSeriesEngine, чтобы обозначить время окончания как 00:00:00 следующего дня (то есть 24:00:00 текущего дня).
  • Функцию trueRange можно использовать в качестве функции состояния в реактивном механизме состояния.
  • Количество строк в результирующем наборе fj ограничено максимум 2 миллиардами строк.

Оптимизация и улучшения в версии 2.00.6:

  • Улучшена производительность select count(*) для таблицы в базе данных TSDB.
  • Сокращено время загрузки индекса механизма хранения TSDB.
  • Повышена производительность записи и чтения данных типа SYMBOL.
  • Функции окна cummed и cumpercentile теперь могут использоваться в качестве функций состояния в механизме реактивного состояния (createReactiveStateEngine).
  • В потоковые механизмы временных рядов (createTimeSeriesEngine и createDailyTimeSeriesEngine) добавлен новый параметр closed для указания, является ли левая или правая граница расчётного окна включающей.
  • Параметр keyColumn функции streamEngineParser теперь нечувствителен к регистру.
  • В механизмы потоковых временных рядов (createTimeSeriesEngine и createDailyTimeSeriesEngine) добавлен новый параметр keyPurgeFreqInSec для удаления групп без входящих данных в течение длительного времени.
  • Оптимизировано использование пользовательских функций в потоковых механизмах временных рядов (createTimeSeriesEngine и createDailyTimeSeriesEngine).
  • Функция streamFilter теперь поддерживает обработку столбцов стандартных потоковых таблиц. Ранее она обрабатывала только выходные данные разнородных replay().
  • Параметр metrics функций createTimeSeriesEngine и createDailyTimeSeriesEngine теперь поддерживает матрицы.
  • Теперь поддерживаются запросы, где (1) столбцы group by не являются столбцами секционирования и (2) к запрашиваемым столбцам применяются чувствительные к порядку функции.
  • Параметр rule функции resample теперь поддерживает «H», «L», «U», «min», «N» и «S». Добавлены новые параметры closed, label и origin для установки интервала групп.
  • Функция byRow теперь поддерживает векторы массивов.
  • Если во время выполнения функции replay возникает ошибка, будет выброшено исключение времени выполнения.
  • Функция matrix может преобразовывать вектор фиксированной длины в матрицу.
  • Оптимизирована генерация случайных целых чисел.
  • Производительность запроса последних записей определённого столбца с механизмом TSDB улучшена до сотен раз.
  • Улучшена производительность запроса top в механизме TSDB.
  • Улучшен доступ к предварительно вычисленным данным в механизме TSDB.

Изменения в версии 2.00.4:

  • При обновлении таблиц в памяти с помощью операторов присваивания теперь можно использовать массивы BOOL в фильтрах строк. Например, t[y, t[y]>0] = 0, где t — таблица, а y — столбец t.

  • К функциям upsert! добавлен новый необязательный параметр sortColumns для указания сортировки обновлённой таблицы.

  • cancelJob и cancelConsoleJob теперь поддерживают отмену нескольких заданий. Отмена заданий также происходит быстрее, когда кластер зависает.

  • Параметр schema функции loadText теперь поддерживает вектор массива.

  • Функция set теперь поддерживает... Тип данных BLOB. (2.00.4)

  • Теперь в ключевую потоковую таблицу нельзя вставить несколько записей с одинаковыми значениями ключа за один пакет. (2.00.4)

  • Ускорение выполнения функций atImin и atImax в параметре aggs соединения по окну. (2.00.4)

  • Добавлен новый необязательный параметр clean в команду run, чтобы контролировать очистку переменных в текущем сеансе. (2.00.4)

  • Параметр window в функции wj теперь поддерживает типы длительности y (год), M (месяц) и B (рабочий день). (2.00.4)

  • Функция loadText теперь поддерживает строки, содержащие символы со значением ASCII 0. (2.00.4)

  • Можно использовать условные присваивания для матриц. (2.00.4)

  • В функцию loadTextEx добавлен новый необязательный параметр atomic. По умолчанию — «false». При загрузке большого файла укажите этот параметр как «false», чтобы разделить транзакцию загрузки на несколько транзакций. (2.00.4)

  • Новый столбец remoteIP добавлен к возвращаемому значению функций getCompletedQueries и getRunningQueries. (2.00.4)

  • Конфигурационный параметр stdoutLog можно указать как «2», чтобы выводить системный журнал как в стандартный вывод, так и в файл журнала. (2.00.4)

  • Параметр metrics в механизмах обнаружения аномалий теперь может содержать функции, связанные с последовательностями. (2.00.4)

  • Когда параметр windowSize механизма временных рядов является вектором, элементы могут принимать одинаковые значения. (2.00.4)

  • Параметр кросс-секционного механизма keyColumn теперь поддерживает векторный тип. (2.00.4)

  • Записи в виде кортежей теперь можно вставлять в механизмы потоковой передачи. (2.00.4)

  • Новое поле memoryUsed добавлено к возвращаемому значению функции getStreamEngineStat().CrossSectionalEngine, которое указывает на используемую память кросс-секционным механизмом. (2.00.4)

  • В механизмах соединения asof параметр metrics теперь может включать временной столбец правой таблицы. (2.00.4)

  • Предоставлена привилегия только для чтения для общих потоковых таблиц. (2.00.4)

  • Повышена стабильность узлов контроллера в кластерах высокой доступности. (2.00.4)

  • Информацию об операциях удаления и обновления можно распечатать в журнале. (2.00.4)

  • Информация о теме подписки добавлена в сообщения об ошибках задачи подписки на поток в журнале. (2.00.4)

  • Улучшения пользовательского интерфейса для Web-Based Cluster Manager. С помощью интегрированного пользовательского интерфейса теперь можно просматривать, приостанавливать и отменять задания (выполняемые, отправленные или запланированные) в DolphinDB. Обратите внимание, что после обновления версии сервера необходимо также обновить папку «web». Новая версия Web-Based Cluster Manager использует протокол WebSocket для улучшения поддержки двоичных протоколов. Возможно, потребуется обновить веб-браузер до последней версии. Мы рекомендуем использовать последнюю версию Chrome или Edge. (2.00.4)

Исправленные проблемы

  • Контроллер мог аварийно завершать работу во время запуска, если продолжал получать запросы на вход от других узлов. (2.00.10.9)

  • Для локальной многопоточной подписки публикация данных с чрезмерно высокой скоростью могла перегрузить локальные очереди подписки, препятствуя приёму новых сообщений и приводя к потере данных. (2.00.10.9)

  • Выполнение функций login и getDynamicPublicKey с высокой степенью параллелизма могло привести к сбою сервера. (2.00.10.8)

  • Функция bar неправильно группировала данные, охватывающие несколько дней из таблицы DFS, когда параметр closed установлен на «right». (2.00.10.8)

  • Функция ParseJsonTable преобразовывала нулевые значения JSON строкового типа в литерал «NULL», а не в пустые значения. (2.00.10.8)

  • Слишком большие поля BLOB из сохранённых потоковых таблиц могут привести к существенной загрузке данных в память, даже если настроено небольшое значение preCache. (2.00.10.8)

  • Возникала ошибка, если вложенная агрегатная функция использовалась с предложением group by при запросе данных из таблицы в памяти. (2.00.10.8)

  • В редких случаях при асинхронной репликации контроллер ведомого кластера не мог назначить задачи. (2.00.10.8)

  • Редко возникали ошибки при отправке запросов через веб-интерфейс управления кластером. Отображение ошибки: «соединение закрыто, код: 1006». (2.00.10.7)

  • При разборе строки JSON, если первые 10 строк поля были NULL, функция parseJsonTable возвращала некорректный результат разбора. (2.00.10.7)

  • Использование функции pack приводило к утечкам памяти. (2.00.10.6)

  • Выполнение cross(func, a, b) могло привести к сбою сервера, если размер a или b был слишком большим. (2.00.10.6)

  • Использование функции unpack приводило к утечке памяти. (2.00.10.5)

  • Если параметр func функции withNullFill был оператором or, то при его операндах в виде логических значений возвращались некорректные результаты. (2.00.10.5)

  • Предложение limit не действовало, когда столбцом группировки был sortColumns. (2.00.10.4)

  • Конфликт данных при обновлении схемы таблицы приводил к проблеме OOM и сбою сервера. (2.00.10.4)

  • Резервное копирование могло зависнуть, если каталог резервного копирования (backupDir) находился на NFS. (2.00.10.4)

  • Ошибка доступа к памяти за пределами границ возникала при попытке закрыть соединение, созданное после установки максимального количества соединений с помощью setMaxConnections. (2.00.10.4)

  • Когда соединяли секционированные таблицы с использованием оператора, который не соответствовал стандартам SQL, обращение к столбцу из левой таблицы в предложении where приводило к сбою сервера. (2.00.10.4)

  • Создание IPC in-memory таблицы завершалось ошибкой, а создание другой таблицы с тем же именем приводило к сбою сервера. (2.00.10.4)

  • Ошибки возникали, когда условие фильтрации в распределённом запросе содержало сравнение между операндами типа SECOND и INT. (2.00.10.4)

  • Тип SYMBOL в IPC in-memory таблице был несовместим с типом STRING. (2.00.10.4)

  • Возникала ошибка «неизвестный столбец», когда система выполняла распределённый запрос, который: (1) включал фазу сокращения; (2) запрашивал данные на удалённых узлах. Эта проблема появилась в версии 2.00.10. (2.00.10.3)

  • Настройка прав доступа пользователей в кластере высокой доступности приводила к утечкам памяти на контроллере. (2.00.10.2)

  • Функция parseExpr не могла разобрать пустое значение {} в объекте JSON. (2.00.10.2)

  • Передача потоковой таблицы параметру dummyTable функции createReactiveStateEngine приводила к отключению при доступе к дескриптору движка. (2.00.10.2)

  • Ошибка OOM возникала при записи в базы данных TSDB в одномашинном кластере, что приводило к несогласованности состояний транзакций. (2.00.10.2)

  • Сообщение об ошибке «getSubChunks failed, path'/xx' does not exist» возникало при восстановлении данных во вновь созданной базе данных. (2.00.10.2)

  • Элементы, доступ к которым осуществлялся на основе меток с помощью функции loc, были некорректными. Эта проблема возникла в версии 2.00.10. (2.00.10.2)

  • Происходила потеря масштаба при восстановлении десятичных данных. (2.00.10.2)

  • Если параметру atomic функции database было присвоено значение 'CHUNK', версии метаданных на контроллере и узлах данных могли быть несогласованными, если транзакция затрагивала несколько фрагментов. (2.00.10.2)

  • Сбой сервера происходил при передаче нестроковой переменной параметру label функции interval. (2.00.10.2)

  • Для таблиц, разделённых по временным значениям, запросы с условиями where для столбца разделения выполнялись медленно. Эта проблема была введена в версии 2.00.10. (2.00.10.2)

  • Переполненный промежуточный результат функции mprod приводил к сбою сервера. (2.00.10.2)

  • Результат in(X,Y) был некорректным, когда Y был набором, содержащим значение LONG с более чем 11 цифрами. (2.00.10.2)

  • Параллельное выполнение операций восстановления (и других) транзакций могло привести к несогласованным метаданным после перезапуска сервера. (2.00.10.2)

  • Реактивный движок состояния возвращал некорректные результаты при вычислении genericStateIterate на входных данных с более чем 1024 группами. (2.00.10.2)

  • Использование определяемой пользователем функции с идентификатором @JIT для запроса таблицы DFS приводило к сбою сервера. (2.00.10.2)

  • В Windows функция files возвращала неточные значения fileSize для файлов размером более 2 ГБ. (2.00.10.1)

  • В кластере высокой доступности... Одновременно. (2.00.10)

  • Сервер падал, когда капитализация имён столбцов, указанных в metrics и входных таблицах механизма левого полусоединения (createLeftSemiJoinEngine), была несогласованной. (2.00.10)

  • Сервер падал при одновременном добавлении данных в потоковую таблицу и сохранении таблицы. (2.00.10)

  • Если metrics функции createWindowJoinEngine указывала псевдоним имени столбца, возвращались некорректные агрегированные результаты. (2.00.10)

  • После вызова DROP table для удаления потоковой таблицы таблица не могла быть удалена или отписана от неё. (2.00.10)

  • Проблемы синтаксического анализа: такие операторы, как "/" == "a", не могли быть проанализированы правильно. (2.00.10)

  • При втором параметре функции ols, состоящем исключительно из 0, выводился дополнительный столбец. (2.00.10)

  • Результаты соединения DECIMAL данных были некорректными. (2.00.10)

  • Сервер падал из-за сбоя синтаксического анализа, если параметр aggs функции wj не соответствовал требованиям. (2.00.10)

  • Результат функции expr был некорректным, если передавался аргумент DATEHOUR. (2.00.10)

  • Веб-интерфейс не мог быть доступен должным образом, если для параметра webLoginRequired было установлено значение true. (2.00.10)

  • Некорректные результаты возвращались при использовании cast для преобразования данных типа SYMBOL. (2.00.10)

  • Функция nullFill не смогла заполнить значения NULL, возвращённые функцией bucket. (2.00.10)

  • Произошла потеря точности после применения unpivot к столбцу типа DECIMAL. (2.00.10)

  • Когда пользовательская анонимная агрегатная функция вызывалась с twindow в другой пользовательской функции, возникала ошибка func must be an aggregate function.. (2.00.10)

  • Когда запускался процесс DolphinDB, сервер падал, если выполнялся скрипт (настроенный с параметром run), содержащий функцию submitJob. (2.00.10)

  • Конфликт имён функций возникал для представления функций и функции модуля на сервере при перезапуске, когда одновременно выполнялись следующие условия (2.00.9.7):

    • в автономном режиме;
    • представление функции было удалено после добавления к нему функции модуля;
    • функция, определённая в модуле, была передана в addFunctionView, а затем представление функции было отброшено;
    • модуль был указан в конфигурационном параметре preloadModules для предварительной загрузки.

Сообщения об ошибках для других конфликтов были улучшены.

  • В кластерном режиме, когда SSL был включён (enableHTTPS=true) для подключения, сеанс мог быть отключён, если с сервера на клиент было передано большое количество данных. (2.00.9.7)

  • В кластерном режиме при объединении таблиц в одной базе данных (atomic = 'CHUNK'), но на разных узлах, могли возвращаться некорректные результаты. (2.00.9.7)

  • Реактивный механизм состояний не обрабатывал пространства имён, определённые в metrics. (2.00.9.7)

  • Функции mskew или mkurtosis возвращали некорректные результаты, если входные данные X содержали последовательные идентичные значения, и количество идентичных значений превышало window. (2.00.9.7)

  • Когда матрица передавалась в качестве аргумента функции ols, если промежуточный результат представлял собой сингулярную матрицу, результат не совпадал с результатом Python's statsmodels.OLS. (2.00.9.6)

  • Возникала ошибка при использовании order by для столбцов типа STRING с limit 0, k или limit k на таблицах MVCC. (2.00.9.5)

  • При удалении представления функции с помощью dropFunctionView мог произойти сбой сервера из-за отсутствия блокировки во время записи журнала. (2.00.9.5)

  • При объединении двух таблиц с помощью equi join или inner join могли возвращаться некорректные результаты, если два соответствующих столбца имели типы STRING и NANOTIMESTAMP. (2.00.9.5)

  • При загрузке таблиц с помощью loadTable могла происходить потеря данных на холодном уровне хранения, если имена таблиц были неправильно проверены. (2.00.9.5)

  • Оператор select distinct отключен. Ключевое слово «distinct» распознаётся как функция distinct, то есть порядок элементов в результате не гарантируется таким же, как и во входных данных. Проблемы, выявленные в версии 2.00.9:

  1. При установке параметра конфигурации datanodeRestartInterval на значение менее 100 секунд контроллер немедленно перезапускал узел данных при корректном завершении работы или после перезапуска кластера.

  2. Некорректное преобразование при передаче кортежа, содержащего числовые скаляры, в функцию toJson.

  3. Некорректное преобразование при использовании словаря с векторными значениями любого типа в функции toJson.

  4. Сбой сервера при использовании функции bar с параметром interval, установленным в 0, для запроса секционированной таблицы.

  5. Для N-к-1 воспроизведения возникала ошибка при указании ключа словаря (заданного параметром inputTables) как типа SYMBOL. Эта ошибка присутствовала начиная с версии 2.00.9.

  6. Запланированные задания не выполнялись из-за неудачной десериализации файла jobEditlog.meta при запуске узла.

  7. Запланированные задания продолжали выполняться до следующего запуска сервера, несмотря на неудачную сериализацию при их создании.

  8. Происходил сбой сервера при указании вектора в качестве значения параметра defaultValue функции array.

  9. Передача не табличных данных в параметр newData функции upsert! могла привести к сбою сервера DolphinDB.

  10. Функция upsert!() терпела неудачу при одновременном выполнении следующих трёх условий:

    • требовалось обновить только одну запись;
    • параметр newData содержал значения NULL;
    • был установлен параметр ignoreNull со значением true.
  11. Попытка добавить несколько новых столбцов в таблицу MVCC в операторе update приводила к ошибке типа данных.

  12. Использование оператора update...from... для обновления таблицы (с keepDuplicates=LAST) в базе данных TSDB могло привести к некорректным результатам.

  13. При указании столбца, содержащего специальные символы, такие как управляющие символы, знаки препинания и математические символы, в предложении group by запроса эти специальные символы неправильно игнорировались.

  14. После добавления столбца в таблицу базы данных TSDB с помощью addColumn могли возникнуть ошибки данных и сбои.

  15. Команда dropColumns! не могла удалить таблицы в памяти с последовательными разделами.

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

  17. Функция getClusterDFSTables могла возвращать таблицы, которые были удалены или не существуют.

  18. Физические пути разделов могли не совпадать с метаданными после добавления новых узлов данных и выполнения команды moveReplicas().

  19. Для N-к-N воспроизведения данные в выходной таблице могли быть неправильно размещены, если элемент источника входных данных для таблицы был пустым.

  20. В механизме оконного соединения: несогласованные подсчёты строк между выходной таблицей и левой входной таблицей при указании nullFill как [[]] и window = 0:0.

  21. Периодические сбои создания потокового движка из-за неинициализированных внутренних переменных.

  22. Для одновременных операций записи и запросов к таблицам базы данных TSDB поток запросов мог дать сбой, когда происходил OOM.

  23. Для операций, связанных с промывкой данных, данные могли быть потеряны или операции могли застрять, если физический каталог раздела не существовал (например, он был удалён вручную).

  24. Неправильный результат функции temporalAdd при указании параметра unit как «M».

  25. Ошибка хранения данных могла произойти при выполнении различных операций над одним и тем же разделом.

Проблемы, выявленные в версии 2.00.9.3:

  1. Пользователи, которым предоставлены привилегии DB_READ или TABLE_READ, могут не иметь возможности выполнять запросы.

  2. Сервер дал сбой в кластере высокой доступности при чтении журналов raft во время перезагрузки контроллера.

  3. Сервер дал сбой при использовании loadText для загрузки CSV-файла, содержащего непарные двойные кавычки ("").

  4. После того как к таблице MVCC были добавлены новые столбцы, могла возникнуть проблема с данными. 2.00.9

  • Произошла ошибка в функции upsert!, когда в TSDB-движке содержались столбцы векторного массива.

  • Завершение процесса DolphinDB с помощью команды kill-9 может привести к тому, что журналы повтора не будут удалены.

  • Может произойти сбой при вычислении таблицы, содержащей строковые столбцы, в реактивном механизме состояний.

  • Отправка метакода, содержащего неопределённые переменные через submitJob, привела к сбою.

  • После восстановления после сбоя сети в кластере может произойти сбой узла.

  • Использование частичного применения в метапрограммировании с контекстом by может дать неверные результаты.

  • sqlObj не удалось распознать как метакод в replayDS.

  • Сервер разбился при сортировке векторного массива функцией rank.

  • Если левая таблица lj является таблицей в памяти, а правая — таблицей DFS, расположенной в многоуровневом каталоге (например, dfs://mydbs/quotedb), будет сообщена об ошибке.

  • Сообщалось об ошибке, когда metric функции createTimeSeriesAggregator содержал keyColumn.

  • Функция трассировки привела к утечке файловых дескрипторов.

  • Функция getClusterPerf вызвала взаимоблокировку при одновременном выполнении двумя узлами в высокодоступном кластере.

  • Сбой может произойти при многократном выполнении функции accumulate.

  • После завершения выполнения функции createDailyTimeSeriesEngine в некоторых сценариях может быть сообщено об ошибке для данных временного типа в результатах запроса.

  • Для секционированной таблицы с указанной в базе данных TSDB sortKeyMappingFunction одновременные запросы с многопоточностью могут вызвать ошибку или сбой.

  • Неожиданный результат возвращён функцией isValid при добавлении двух пустых строк.

  • Возвращены нулевые значения, когда в предложении where указано более 128 условий фильтрации, связанных ключевым словом or.

  • Исключение, выброшенное функцией loadText, может привести к взаимоблокировкам при высокой нагрузке.

  • После добавления функции в представление функций тело, запрошенное функцией getFunctionView, имело на одну пару скобок меньше.

  • При доступе к строке из таблицы с использованием индекса был возвращён неверный результат для полей типа векторного массива.

  • Разбился сервер при извлечении строкового вектора путём нарезки с индексом вне границ.

  • Может произойти сбой при использовании функции высшего порядка each для применения определяемой пользователем функции к таблице.

  • Сообщено об ошибке, если minPeriods было установлено больше или равно 2 при расчёте векторных массивов с использованием функции moving в памяти.

  • Не было выдано исключения, когда данные, добавленные в кросс-секционный движок, не соответствовали схеме фиктивной таблицы.

  • Восстановление базы данных TSDB с помощью функции restoreDB вызвало взаимоблокировку.

  • Когда таблицы DFS объединяются с совпадающим столбцом, отличным от столбца разделения, и результат объединения запрашивается предложением select top и разделом по столбцу, возвращается неверный результат.

  • Об ошибке сообщалось при использовании функций rpc или remoteRun для вызова частично применённой функции.

  • Файл, хранящий журналы заданий, был потерян, когда он достиг 1G.

  • Количество потоков openBLAS определялось на основе параметра конфигурации openblasThreads, а не на количестве ядер ЦП.

  • Произошла утечка памяти при записи данных типа STRING в таблицу в базе данных TSDB.

  • Движок TSDB не смог сбросить данные при настройке параметра TSDBCacheFlushWorkNum на значение меньше volumes.

  • Сериализация на узле данных не удалась, если метаданные раздела превысили 128M.

  • Операции DDL на узле данных вызвали ошибки статуса раздела из-за сбоя разрешения транзакций.

  • Ошибка воспроизведения журнала повторов привела к разделу. Статусные ошибки на узле данных (2.00.8):

  • Неверно удалена секция из-за сбоя миграции при перемещении секции в сконфигурированный холодный том многоуровневого хранилища (2.00.8).

  • При создании базы данных с atomic='CHUNK' произошёл медленный запуск из-за избыточных метаданных на контроллере (2.00.8).

  • Удаление таблицы DFS в базе данных TSDB с помощью команды delete вызвало чрезмерное использование памяти (2.00.8).

  • Преждевременно произошла повторная обработка старых данных после обновления (2.00.8).

  • После выполнения операции renameTable исходная таблица не была немедленно освобождена (2.00.8).

  • Сервер аварийно завершил работу при указании пути к секции, который заканчивался символом «/», для функции dropPartition (2.00.8).

  • Пользователи не могут удалять секции, которые были автоматически добавлены при создании таблицы DFS с секциями на основе значений путём указания условий для dropPartition (2.00.8).

  • Повторные удаления в пустой таблице вызвали ошибки cid в метаданных, хранящихся на узле данных (2.00.8).

  • Параметр dfsRecoveryConcurrency не вступил в силу после настройки (2.00.8).

  • При вставке векторного массива в потоковую таблицу обработчик подписки завершился неудачно (2.00.8).

  • Аварийное завершение работы сервера при передаче векторных массивов пользовательской функции, указанной для метрик createReactiveStateEngine (2.00.8).

  • Ошибка createReactiveStateEngine при указании фактора tablibNull для метрик (2.00.8).

  • Аварийное завершение работы сервера при указании внешних переменных для метрик streamEngineParser (2.00.8).

  • Аварийное завершение работы сервера, когда количество строк левой таблицы было меньше размера окна в window join (2.00.8).

  • Аварийное завершение работы сервера при использовании exec с limit и количестве возвращённых строк меньше limit (2.00.8).

  • Функции isDuplicated и nunique возвращали неверные результаты при работе с типами данных DOUBLE и FLOAT (2.00.8).

  • Вызов parseExpr в пользовательских функциях приводил к ошибке синтаксического анализа (2.00.8).

  • Функция getClusterPerf возвращала неверное значение maxRunningQueryTime (2.00.8).

  • Аварийное завершение работы сервера при использовании loadNpy для чтения чрезмерно больших файлов npy (2.00.8).

  • Переменные, определённые внутри цикла for, не могли быть доступны вне цикла с использованием версии DolphinDB JIT (2.00.8).

  • Сбор мусора журнала повторов зависал при непрерывной записи данных в базу данных OLAP (2.00.7).

  • Контроллер ошибочно считал узел живым после корректного завершения работы (2.00.7).

  • Блокировки секций преждевременно снимались из-за тайм-аута до разрешения транзакции, что приводило к сбою записи (2.00.7).

  • Условия запроса обрабатывались неверно при резервном копировании данных путём указания условий (2.00.7).

  • Аварийное завершение работы сервера при чрезмерно высокой нагрузке на машину (2.00.7).

  • Когда кластер перезапускался после обновления таблицы DFS, исходные физические каталоги могли не быть переработаны (2.00.7).

  • Сбой сериализации базовой символьной информации привёл к ошибкам чтения (2.00.7).

  • Подписке на потоковые данные не удалось получить данные, которые находились в памяти, но были удалены с диска (2.00.7).

  • Аварийное завершение работы сервера, когда число столбцов, вставленных с помощью appendForJoin, не соответствовало схеме таблицы левого или правого соединения (2.00.7).

  • Когда параметр updateTime функции createSessionWindowEngine был указан, а выходная таблица не являлась ключевой таблицей, расчёт не мог быть запущен после 2 * updateTime при поступлении записи (2.00.7).

  • Аварийное завершение работы сервера при непрерывном вводе данных в ежедневный механизм временных рядов после окончания сеанса (2.00.7).

  • Не удалось создать механизм объединения поиска, когда правая таблица была указана как общая ключевая таблица (2.00.7).

  • Если узел был перезапущен, когда потоковая таблица сохранялась на диск, могла произойти потеря данных и сбой декомпрессии (2.00.7).

  • Аварийное завершение работы сервера при указании временного столбца (большой формы массива) для dateColumn и timeColumn функции replay и установке absoluteRate=false (2.00.7).

  • Ошибки нет. Были сообщения о сбоях при определении функции, заданной пользователем, с постоянным возвращаемым значением для metrics реактивного механизма состояния. (2.00.7)

  • Сбой сервера при указании временных переменных для metrics createAnomalyDetectionEngine. (2.00.7)

  • Сообщалось об ошибке «Предложение select запроса не ссылается ни на один столбец» при выполнении операций context by над таблицей DFS с использованием метапрограммирования. (2.00.7)

  • При использовании SQL update с context by, если первый столбец был установлен как целочисленный тип, а последующие столбцы были установлены как типы с плавающей запятой, значения в столбцах с плавающей запятой округлялись. (2.00.7)

  • Параллельные запросы pivot by могут зависнуть при небольшом количестве рабочих потоков. (2.00.7)

  • Сбой сервера при использовании HINT_EXPLAIN для запроса данных из трёхуровневой секционированной таблицы. (2.00.7)

  • Неверные результаты при использовании функции binsrch на подмассиве типа STRING. (2.00.7)

  • Функция cast возвращала пустое значение при преобразовании вектора типа STRING в кортеж. (2.00.7)

  • При агрегировании нескольких столбцов INT128 таблицы в памяти возникала ошибка «Функция min для редукционных операций не поддерживает тип данных INT128». (2.00.7)

  • getFunctionView не вернул некоторые тела представлений функций. (2.00.7)

  • Неверный результат применения функции removeHead! к векторным векторам. (2.00.7)

  • Сбой сервера при добавлении пустого кортежа к самому себе и последующей загрузке. (2.00.7)

  • Сбой сервера при интерполяции интервала в запросе SQL, если детализация типа данных, указанная для временного диапазона в предложении where, больше детализации времени, указанной параметром duration параметра interval. (2.00.7)

  • Сбой сервера при использовании функции twindow в запросе SQL. (2.00.7)

  • Ошибка update таблицы DFS, когда имена столбцов установки не совпадали с исходными именами столбцов (включая несоответствия с учётом регистра). (2.00.7)

  • Когда функция iterate была включена в metrics реактивного механизма состояний и был включён механизм очистки данных, при вставке данных во время очистки исторических данных возникала ошибка "vector::_M_default_append". (2.00.7)

  • При вызове matrix([[datehour(0)],[datehour(0)]) для создания матрицы возникала ошибка «Объект данных для матричной функции не может быть строкой или любым типом». (2.00.7)

  • При указании countNanInf для параметра aggs функции wj возникала ошибка «Оконная объединяющая функция должна быть агрегатной функцией». (2.00.7)

  • Если для createDailyTimeSeriesEngine не была указана группа, любые нерассчитанные данные за предыдущий день объединялись в первое окно следующего дня. (2.00.7)

  • Результат расчёта первого окна по дням в ежедневном механизме временных рядов был неверным. Кроме того, когда функция fill использовалась для заполнения значений NULL, выводились данные вне сеанса. (2.00.7)

  • Задачи в состоянии In-Progress не могли быть восстановлены во время онлайн-восстановления. (2.00.7)

  • Сбой сервера при указании useSystemTime=true и mode для metrics createTimeSeriesEngine. (2.00.7)

  • При указании функции tmove или move для метрик createReactiveStateEngine сервер аварийно завершал работу, если X был типа STRING или SYMBOL. (2.00.7)

  • Неверные результаты функции wj при указании atImax или atImin для aggs. (2.00.7)

  • Вставка данных не удалась с помощью tableInsert при разделении и назначении потоковой таблицы с помощью streamFilter. (2.00.7)

  • Неудача вставки streamFilter может привести к отключению сеанса из-за слишком длинных сообщений об ошибках. (2.00.7)

  • При указании функций firstNot или lastNot для metrics createTimeSeriesEngine или createReactiveStateEngine и установке fill=ffill вывод не соответствовал ожиданиям. (2.00.7)

  • Сервер аварийно завершил работу при указании функций mfirst или mlast для metrics createReactiveStateEngine, а X имел тип FLOAT, SHORT, CHAR, BOOL, INT128, STRING. (2.00.7) - Выполнение функции tableInsert изменило атомарный уровень базы данных с 'CHUNK' на 'TRANS'. (2.00.7)

  • При указании tm-функций для metrics createReactiveStateEngine и window параметра функции установлено значение y, M или B, результат расчёта был неверным. (2.00.7)

  • Утечка файлового дескриптора при использовании TSDB-движка версии 2.00.6 в Windows. (2.00.7)

  • Несогласованные столбцы STRING между репликами после онлайн-восстановления. (2.00.7)

  • При передаче данных типа TIME в index функции resample и установке origin="end" и rule="D" была зарегистрирована ошибка «Invalid value for HourOfDay (valid values 0 - 23): 39». (2.00.7)

  • Зарегистрирована ошибка при предоставлении разрешений администраторами (кроме супер администратора). (2.00.7)

  • Исключение повторного журнала при OOM в TSDB-двигателе. (2.00.7)

  • Неверные результаты при расчёте imin или imax с помощью byRow на матрице с пустой строкой. (2.00.7)

  • Функция getControllerPef возвращала неверный агент-сайт при сбое контроллера. (2.00.7)

  • Сбой сервера при вызове interval в SQL-запросе и агрегировании данных пользовательской функцией. (2.00.7)

  • Если dataSync не настроен, возникает ошибка при динамическом вызове функции addNode для добавления узла. (2.00.7)

  • Ошибка OOM из-за одновременных записей, запросов или вычислений может привести к зависанию сервера. (2.00.6)

  • Если в TSDB-движке включена дедупликация данных, то при одновременной записи и чтении результат может быть неверным. (2.00.6)

  • При одновременной записи и чтении в OLAP-движке результат может быть неверным. (2.00.6)

  • Запрос с использованием exec с limit 1 в TSDB-движке возвращает таблицу, а не вектор. (2.00.6)

  • При записи в кэш-двигатель OLAP, если возникает исключение, отличное от OOM, система будет многократно пытаться выполнить перезапись, что приводит к зависанию сервера. (2.00.6)

  • Если узел данных запускается через веб-интерфейс или кластер перезапускается повторно, создаются несуществующие процессы. (2.00.6)

  • Вызов moveReplicas после выполнения suspendRecovery приводит к сбою перемещения некоторых фрагментов. (2.00.6)

  • После отправки параллельных задач при перезагрузке кластера некоторые фрагменты всегда находятся в состоянии RECOVERING. (2.00.6)

  • Использование delete для удаления большого объёма данных может привести к неверной информации, записанной в файл контрольной точки, что вызывает сбой узла и невозможность его перезапуска. (2.00.6)

  • Включение снимка в реактивном потоковом движке состояний приводит к сбою сервера при повторной подписке на таблицу с разными метриками. (2.00.6)

  • Добавление одной записи в движок поиска по соединениям может вызвать сбой сервера. (2.00.6)

  • Если данные, записываемые в таблицу высокой доступности, имеют другую схему, они всё равно могут попасть в постоянную очередь, и после переключения лидера будет сообщено об ошибке «Can't find the object with name». (2.00.6)

  • Если параметр fill указан для createDailyTimeSeriesEngine, результат даты без данных заполняется. (2.00.6)

  • Пользователь, не являющийся администратором, может использовать функцию createUser. (2.00.6)

  • Команда changePwd не ограничивает длину нового пароля. (2.00.6)

  • Если вектору массива требуется большой объём памяти, но он не достигает warningMemSize, возникает ошибка OOM. (2.00.6)

  • matrix([],[]) приводит к сбою сервера. (2.00.6)

  • При использовании exec с pivot by, если на столбце exec не используется функция, оператор будет генерировать таблицу, а не матрицу. (2.00.6)

  • Если numJobs > 1 или numJobs = -1 задано в функции randomForestClassifier для параллельных заданий, повторное использование dataSource приводит к сбою сервера. (2.00.6)

  • Если точность параметра duration функции interval отличается от точности параметра X, происходит сбой. (2.00.6)

  • При создании ключевой таблицы в памяти с keyedTable(keyColumns, table), если... В таблице keyColumns есть повторяющиеся значения, происходит утечка памяти. (2.00.6)

  • При перемещении функций, которые можно использовать с матрицами, таких как mcorr и mwavg, при вычислении на индексированных матрицах столбец меток может быть потерян в результате. (2.00.6)

  • Функция LoadTextEx не сообщает об ошибке при возникновении исключения загрузки данных с версии 2.00.4. (2.00.6)

  • Может произойти тайм-аут восстановления журнала повторов при медленной синхронизации транзакции с диском, что приведёт к потере данных после перезапуска сервера. (2.00.4)

  • Узел данных не запускается и выдаёт сообщение об ошибке «Не удалось открыть файл открытого ключа. Нет такого файла или каталога» при запуске нескольких кластеров DolphinDB на одном сервере. (2.00.4)

  • Запланированное задание в кластере высокой доступности может завершиться неудачно из-за сбоя аутентификации переключённого лидера, поскольку исходные UUID различаются между контроллерами. (2.00.4)

  • После сбоя узла данных агентский узел перезагружает автономный узел каждую секунду вместо указанных интервалов, настроенных в параметре datanodeRestartInterval. (2.00.4)

  • Когда параметр jobFunc функции scheduleJob содержит оператор SQL обновления и предложение where с функциями, десериализация завершается неудачно после перезагрузки системы. (2.00.4)

  • Исходные физические каталоги не перерабатываются после обновления распределённой таблицы, если транзакция не может быть зафиксирована. (2.00.4)

  • В сценарии с высоким уровнем параллелизма полностью занятый диск журнала повторов может вызвать взаимоблокировку в потоке восстановления журнала повторов. (2.00.4)

  • Если событие OOM возникает при записи в узел данных, узел зависает на некоторое время, а затем падает, вместо того чтобы сообщить об ошибке. (2.00.4)

  • Для таблицы, разделённой по timeCol, с более чем двумя sortColumns (где timeCol является последним столбцом), механизм TSDB может аварийно завершить работу при запросе таблицы для получения первых k строк записей, сгруппированных по sortColumns и отсортированных по timeCol (context by sortColumns csort timeCol limit k). (2.00.4)

  • При одновременной модификации журнала редактирования в механизме TSDB узел данных не может перезапуститься. (2.00.4)

  • Состояние чанка устанавливается неправильно, когда время ожидания отката транзакции истекает, вызывая сбой сохранения в потоковой таблице. (2.00.4)

  • Ошибка проверки параметров с функцией createCrossSectionalEngine: когда timeColumn указан без установки useSystemTime в значение true, ошибка не возникает. (2.00.4)

  • Для механизма потокового временного ряда, когда useSystemTime установлено в значение true и outputTable является распределённой таблицей, может возникнуть исключение несоответствия типов данных. (2.00.4)

  • Если delayedTime указано в механизме потокового соединения asof, операции записи могут привести к сбою сервера. (2.00.4)

  • При добавлении более 65536 строк записей в таблицу высокой доступности дважды и откате индекс.log сообщает об ошибке «индекс.лог содержит недопустимые данные», так как записываются два одинаковых индекса. (2.00.4)

  • Запись в механизм потоковых временных рядов, ежедневный механизм потоковых временных рядов или механизм потокового соединения asof может привести к сбою сервера в Windows. (2.00.4)

  • Когда поток subExecutor всё ещё имеет задачи в процессе выполнения, после успешного выполнения unsubscribeTable, getStreamingStat().subWorkers по-прежнему возвращает отписанные темы. (2.00.4)

  • Загрузка таблицы высокой доступности может завершиться неудачей после перезапуска узла. (2.00.4)

  • Повторное подключение не удаётся после переключения лидеров в группах raft таблицы потоков и подписчика. (2.00.4)

  • Когда triggeringPattern = 'keyCount' и triggeringInterval — это кортеж, createCrossSectionalEngine возвращает повторяющиеся результаты. (2.00.4)

  • Возникает ошибка «Не удалось распаковать вектор. Недействительный формат сообщения» при загрузке сохранённой таблицы потоков, содержащей данные BLOB. (2.00.4)

  • Происходит сбой при записи данных BLOB в таблицу потоков, и одна запись превышает 64 КБ. (2.00.4)

  • После присвоения значений добавленному столбцу в таблице в памяти с помощью оператора select вместо оператора exec. Узел падает при загрузке таблицы (2.00.4).

  • При обращении к таблице в памяти с векторными массивами через графический интерфейс пользователя (GUI) происходит отключение сеанса от сервера (2.00.4).

  • Возникает ошибка «Только для чтения объект или объект без владения не может быть применён к изменяемой функции readRecord!» при загрузке двоичных файлов с помощью функции readRecord! (2.00.4).

  • Парсер может сообщать об ошибке для вызовов функций, когда правая скобка не размещена на той же строке, что и левая (2.00.4).

  • Выполнение функции replayDS на таблице с векторными массивами приводит к падению узла (2.00.4).

  • При запросе разделённой таблицы с доменом значений для последних k строк записей в каждой группе (context by partitionCol limit -k) некоторые результаты не удовлетворяют условиям where, если в разделе нет подходящих данных (2.00.4).

  • Ошибка «Более одного столбца имеет повторяющееся имя» возникает при вызове функций rolling или moving в операторе SQL без указания имени сгенерированного столбца (2.00.4).

  • Генерируются значения NULL, если данные не найдены в step-длительности функции interval (2.00.4).

  • Неправильно указанный параметр rowKeys функции sliceByKey приводит к сбою сервера (2.00.4).

  • После замены вектора значениями NULL флаг NULL не устанавливается (2.00.4).

GUI

  • Устранена задержка отображения больших наборов данных (2.00.10.1).

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/dolphindb-release.git
git@api.gitlife.ru:oschina-mirror/dolphindb-release.git
oschina-mirror
dolphindb-release
dolphindb-release
master