create-dwy 0.12.2 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/index.js +20 -0
- package/package.json +1 -1
- package/src/sync-codex.js +350 -0
- package/src/sync.js +24 -9
- package/templates/claude-global/rules/Android/dwy-android-core.md +256 -80
- package/templates/claude-global/rules/Android/dwy-android-support-only.md +112 -0
- package/templates/claude-global/skills//345/205/203/345/267/245/345/205/267/dwy-claude-code-features/SKILL.md +140 -0
- package/templates/claude-global/skills//345/205/203/345/267/245/345/205/267/dwy-claude-code-features/references/comparison-matrix.md +89 -0
- package/templates/claude-global/skills//345/205/203/345/267/245/345/205/267/dwy-claude-code-features/references/lint-checklist.md +103 -0
- package/templates/claude-global/skills//345/205/203/345/267/245/345/205/267/dwy-claude-code-features/references/memory-rules.md +234 -0
- package/templates/claude-global/skills//345/205/203/345/267/245/345/205/267/dwy-claude-code-features/references/settings-permissions-hooks.md +323 -0
- package/templates/claude-global/skills//345/205/203/345/267/245/345/205/267/dwy-claude-code-features/references/skills.md +220 -0
- package/templates/claude-global/skills//345/205/203/345/267/245/345/205/267/dwy-claude-code-features/references/slash-commands.md +169 -0
- package/templates/claude-global/skills//345/205/203/345/267/245/345/205/267/dwy-claude-code-features/references/subagents.md +353 -0
- package/templates/claude-global/skills//345/205/203/345/267/245/345/205/267/dwy-claude-code-features/references/url-manifest.json +68 -0
- package/templates/claude-global/skills//345/205/203/345/267/245/345/205/267/dwy-claude-code-features/scripts/lint.py +652 -0
- package/templates/claude-global/skills//345/205/203/345/267/245/345/205/267/dwy-claude-code-features/scripts/refresh_docs.py +177 -0
- package/templates/claude-global/skills//345/256/211/345/205/250/dwy-sdk-spec/scripts/check_python_publish.sh +2 -2
- package/templates/claude-global/skills//345/256/211/345/205/250/dwy-sdk-spec/scripts/detect_sdk.sh +3 -3
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/SKILL.md +108 -87
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/INDEX.md +2874 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/digest/data-ingest.md +142 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/digest/deploy-ops.md +133 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/digest/engines.md +102 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/digest/finance-patterns.md +181 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/digest/functions-aggregate-window.md +153 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/digest/functions-string.md +150 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/digest/functions-temporal.md +154 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/digest/partitioning.md +149 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/digest/perf-tuning.md +141 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/digest/python-sdk.md +189 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/digest/sql-essentials.md +142 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/digest/stream-engine.md +141 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/about/ddb_intro.md +89 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/api/connapi_intro.md +366 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/backtest/backtest_intro.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/cfg/cluster.md +104 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/cfg/db_intro.md +30 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/cfg/function_configuration.md +1149 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/cfg/init.md +54 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/cfg/para_cfg.md +18 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/cfg/standalone.md +95 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/clients.md +19 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db/catalog.md +394 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db/db_architecture.md +30 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db/db_partitioning.md +315 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db/ha.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db/imoltp.md +381 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db/iotdb.md +419 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db/limits.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db/multimodal_storage.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db/olap.md +107 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db/pkey_engine.md +361 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db/rdma.md +177 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db/rebalance.md +61 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db/recovery.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db/storage_compute_separation.md +308 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db/textdb.md +342 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db/three_centers_in_two_places.md +187 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db/tiered_storage.md +225 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db/transaction.md +208 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db/tsdb.md +557 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db/vectordb.md +160 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_distr_comp.md +16 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_man/web/GettingStart.md +223 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_man/web/Shell.md +271 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_man/web/access_man.md +214 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_man/web/cep.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_man/web/cfg_man.md +157 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_man/web/cluster_overview.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_man/web/feature_settings.md +132 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_man/web/git_multiple_tabs.md +171 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_man/web/intro.md +22 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_man/web/job_man.md +20 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_man/web/kafka_mqtt.md +332 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_man/web/log.md +15 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_man/web/plugin_management.md +96 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_man/web/querybuilder.md +350 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_man/web/regulr_inspection.md +101 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_man/web/session_management.md +13 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_man/web/stream_graph.md +61 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_man/web/stream_monitor.md +112 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_oper/FunctionView.md +151 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_oper/add_partitions.md +87 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_oper/binary_records_import.md +105 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_oper/create_db_tb.md +231 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_oper/data_import_method.md +100 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_oper/drop_db_tb.md +120 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_oper/drop_partitions.md +158 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_oper/hdf5_files_import.md +447 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_oper/insert_data.md +330 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_oper/parquet_files_import.md +318 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_oper/queries.md +334 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/db_oper/text_files_import.md +1007 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/drop_database_table.md +86 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/gui.md +221 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/jupyter.md +90 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/mod_data.md +144 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/modify_table_structure.md +133 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/terminal.md +170 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/db_distr_comp/vscode.md +588 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/deploy/deploy_intro.md +147 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/deploy/license_fingerprint_collection.md +122 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S00001.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S00002.md +69 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S00003.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S00004.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S00006.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S00007.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S00008.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01001.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01002.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01003.md +30 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01004.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01005.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01006.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01007.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01008.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01009.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01011.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01012.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01013.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01014.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01015.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01016.md +29 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01018.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01019.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01020.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01021.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01022.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01023.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01024.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01025.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01026.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01027.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01028.md +29 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01029.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01030.md +30 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01031.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01032.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01035.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01036.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01037.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01038.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01039.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01040.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01041.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01042.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01043.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01044.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01045.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01050.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01051.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01052.md +29 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01053.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01054.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01055.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01056.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01057.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01058.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01059.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01060.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01061.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01062.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01063.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01064.md +29 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01065.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01067.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01068.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S01069.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02000.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02001.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02002.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02003.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02004.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02005.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02006.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02007.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02008.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02009.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02010.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02011.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02012.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02013.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02014.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02015_0.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02016.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02017.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02018.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02019.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02020.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02021.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02022.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02023.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02024.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02025.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02026.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02027.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02028.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02029.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02030.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02031.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02044.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02045.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02046.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02047.md +71 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02048.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02049.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02050.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02051.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02052.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02053.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02054.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02055.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02056.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02057.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S02059.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S03000.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S03001.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S03002.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S03003.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S03005.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S03006.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S03007.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S03008.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S03009.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S03012.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S03013.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S03014.md +30 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S03015.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S03016.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S03017.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S03018.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S03019.md +30 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S03020.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S04001.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S04002.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S04003.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S04004.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S04005.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S05000.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S05001.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S05003.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S05004.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S05005.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S05006.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S05007.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S05010.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S06000.md +54 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S06001.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S06002.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S06003.md +59 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S06004.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S06005.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/S06006.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/err_codes.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s00005.md +29 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s00009.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s00010.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s00011.md +30 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s00012.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s00013.md +29 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s00014.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s00015.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s00016.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s00017.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s00018.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s00019.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s00020.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s01000_0.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s01010.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s01017.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s01033.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s01034.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s01046.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s01047.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s01048.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s01049.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s01070.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s01071.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s01072.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s01074.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s01076.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s01077.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s02032.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s02033.md +30 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s02034.md +30 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s02035.md +30 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s02036.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s02037.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s02038.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s02039.md +30 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s02040.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s02041.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s02042.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s02043.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s03021.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s03022.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s03023.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s03024.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s03025.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s03027.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s03028.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s03036.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s03037.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s03038.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s03039.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s03040.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s03041.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s03042.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s03043.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s04006.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s04007.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s04008.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s05008.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s05009.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s05011.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s05012.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s05013.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s05014.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s05015.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s05016.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s05017.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s06007.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s06008.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s06009.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s06010.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s06011.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s06012.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s06013.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s07000.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s07001.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s07002.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s07003.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s07004.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s07005.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s07006.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s09000.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s09001.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s09002.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s09003.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s09004.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s09005.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s09006.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s09007.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s09008.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s09009.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s10000.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s10001.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s10002.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s10003.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s10004.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s10005.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s10006.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s10007.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s10008.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s10009.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s12000.md +29 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s12001.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s12002.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s12003.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s12004.md +29 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s12005.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s12006.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s12007.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s12008.md +30 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/s12009.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/error_codes/troubleshooting.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/_INDEX.md +1796 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/abs.md +58 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/acf.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/acos.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/acosh.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/adaBoostClassifier.md +96 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/adaBoostRegressor.md +92 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/add.md +107 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/addAccessControl.md +107 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/addColumn.md +117 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/addEventListener.md +235 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/addFunctionView.md +82 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/addGroupMember.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/addMCPPrompt.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/addMCPTool.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/addMarketHoliday.md +103 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/addMetrics.md +103 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/addNode.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/addRangePartitions.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/addSparseReactiveMetrics.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/addValuePartitions.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/addVolumes.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/addcacherulesforcomputegroup.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/addgpfunction.md +86 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/addipblacklist.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/addipwhitelist.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/addreactivemetrics.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/addstatelessmetrics.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/adfuller.md +80 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/align.md +141 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/all.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/and.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/anova.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/any.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/append!.md +174 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/appendEvent.md +88 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/appendForJoin.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/appendMktData.md +145 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/appendMsg.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/appendOrcaStreamTable.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/appendTupel_.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/appendeventwithresponse.md +116 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/arima.md +95 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/array.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/arrayVector.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/asFreq.md +237 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/asIs.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/asfreq1.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/asin.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/asinh.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/asof.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/at.md +167 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/atImax.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/atImin.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/atan.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/atanh.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/attributeTypes.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/attributenames.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/attributevalues.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/autocorr.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/a/avg.md +54 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/backup.md +202 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/backupDB.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/backupTable.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/backupsettings.md +54 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bar.md +162 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/base64Decode.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/base64Encode.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/beta.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/between.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bfill.md +103 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bfill_.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bigarray.md +109 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/binaryExpr.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/binsrch.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bitAnd.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bitNot.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bitOr.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bitXor.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/blob.md +77 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bondCalculator.md +185 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bondCashflow.md +89 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bondDirtyPrice.md +88 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bondDuration.md +81 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bondFuturesPricer.md +85 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bondPricer.md +200 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bondYieldCurveBuilder.md +393 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bondaccrint.md +81 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bondconvexity.md +79 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bondinstrumentcalculator.md +235 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bondyield.md +108 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bool.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/boxcox.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/brentq.md +86 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/brute.md +82 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bucket.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bucketCount.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/businessDay.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/businessMonthBegin.md +81 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/businessMonthEnd.md +81 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/businessQuarterBegin.md +91 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/businessQuarterEnd.md +89 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/businessYearBegin.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/businessYearEnd.md +95 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/b/bvls.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cacheDSNow.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cacheDS_.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cachedTable.md +71 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/callMCPTool.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cancelConsoleJob.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cancelJob.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cancelRebalanceTask.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cancelRecoveryTask.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cancelpkeycompactiontask.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cast.md +143 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cbrt.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cdfBeta.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cdfBinomial.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cdfChiSquare.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cdfExp.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cdfF.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cdfGamma.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cdfKolmogorov.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cdfLogistic.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cdfNormal.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cdfPoisson.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cdfStudent.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cdfUniform.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cdfWeibull.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cdfZipf.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/ceil.md +84 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cell.md +59 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cells.md +54 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/changePwd.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/changelogStreamTable.md +100 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/char.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/charAt.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/checkBackup.md +81 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/checkpointHaMvcc.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/chiSquareTest.md +73 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cholesky.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cj.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cleanOutdateLogFiles.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/clearAllCache.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/clearCachedDatabase.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/clearCachedModules.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/clearDSCacheNow.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/clearDSCache_.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/clearTablePersistence.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/clear_.md +68 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/clearalliotdblatestkeycache.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/clearalliotdbstatictablecache.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/clearalltsdbsymbolbasecache.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/clearcomputenodecache.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/clearcomputenodediskcache.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/clip.md +165 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/clip_.md +21 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/close.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/closeSessions.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cmFutVolatilitySurfaceBuilder.md +262 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cmfutamericanoptionpricer.md +254 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cmfuteuropeanoptionpricer.md +149 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/coevent.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/coint.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/col.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cols.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/columnNames.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/complex.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/compose.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/compress.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/concat.md +80 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/concatDateTime.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/concatMatrix.md +58 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/conditionalFilter.md +113 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/conditionalIterate.md +159 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/constantdesc.md +98 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/contextCount.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/contextSum.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/contextSum2.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/convertEncode.md +73 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/convertExcelFormula.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/convertTZ.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/copy.md +76 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/copyReplicas.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/corr.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/corrMatrix.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cos.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cosh.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cosine.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/count.md +104 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/countNanInf.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/covar.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/covarMatrix.md +58 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/covarp.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/crc32.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createAnomalyDetectionEngine.md +223 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createAsofJoinEngine.md +197 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createCEPEngine.md +340 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createCatalog.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createCrossSectionalAggregator.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createCrossSectionalEngine.md +582 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createDailyTimeSeriesEngine.md +346 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createDataViewEngine.md +166 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createDistributedInMemoryTable.md +109 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createDualOwnershipReactiveStateEngine.md +106 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createEqualJoinEngine.md +12 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createEquiJoinEngine.md +116 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createGroup.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createIMOLTPTable.md +88 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createIPCInMemoryTable.md +68 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createLeftSemiJoinEngine.md +142 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createLookupJoinEngine.md +353 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createMktDataEngine.md +966 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createNearestJoinEngine.md +185 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createOrcaHaKeyedStreamTable.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createOrcaHaStreamTable.md +61 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createOrcaKeyedStreamTable.md +86 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createOrcaLatestKeyedStreamTable.md +86 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createOrcaStreamTable.md +89 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createPartitionedTable.md +416 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createReactiveStateEngine.md +429 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createReactiveStatelessEngine.md +261 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createRuleEngine.md +223 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createSchema.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createSessionWindowEngine.md +226 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createSparseReactiveStateEngine.md +124 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createStreamDispatchEngine.md +325 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createStreamGraph.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createTable.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createTimeSeriesAggregator.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createTimeSeriesEngine.md +1127 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createUser.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createWindowJoinEngine.md +331 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createcryptoorderbookengine.md +265 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createdeviceengine.md +142 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createdimensiontable.md +171 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/creategplearnengine.md +101 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createnarrowreactivestateengine.md +112 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createorderbooksnapshotengine.md +854 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createpricingengine.md +119 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createsnapshotjoinengine.md +397 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createsseorderreconstructionengine.md +109 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createstreambroadcastengine.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createthresholdengine.md +354 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/createtimebucketengine.md +210 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/crossStat.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cubichermitesplinefit.md +96 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cubicspline.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cubicsplinepredic.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumPositiveStreak.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumavg.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumavgTopN.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumbeta.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumbetaTopN.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumcorr.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumcorrTopN.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumcount.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumcovar.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumcovarTopN.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumcovarp.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumcovarpTopN.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumdenseRank.md +88 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumfirstNot.md +69 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumkurtosisTopN.md +76 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumlastNot.md +69 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cummax.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cummdd.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cummed.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cummin.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumnunique.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumpercentile.md +104 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumprod.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumrank.md +85 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumskewTopN.md +76 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumstd.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumstdTopN.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumstdp.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumstdpTopN.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumsum.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumsum2.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumsum3.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumsum4.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumsumTopN.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumvar.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumvarTopN.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumvarp.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumvarpTopN.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumwavg.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumwsum.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cumwsumTopN.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/curvePredict.md +91 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cut.md +162 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cutPoints.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/c/cvar.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_SparseReactiveStateEngine.md +84 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_anomalyDetectionEngine.md +98 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_asofJoinEngine.md +115 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_buffer.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_changelogSink.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_crossSectionalEngine.md +131 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_cryptoOrderBookEngine.md +94 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_dailyTimeSeriesEngine.md +234 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_dualOwnershipReactiveStateEngine.md +81 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_equalJoinEngine.md +96 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_fork.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_getOutputSchema.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_haBuffer.md +59 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_haKeyedBuffer.md +59 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_haKeyedSink.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_haSink.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_keyedBuffer.md +80 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_keyedSink.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_latestKeyedBuffer.md +85 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_latestKeyedSink.md +69 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_leftSemiJoinEngine.md +99 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_lookupJoinEngine.md +110 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_map.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_narrowReactiveStateEngine.md +118 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_nearestJoinEngine.md +127 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_orderBookSnapshotEngine.md +220 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_parallelize.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_reactiveStateEngine.md +107 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_reactiveStatelessEngine.md +108 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_ruleEngine.md +106 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_sessionWindowEngine.md +150 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_setEngineName.md +29 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_sink.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_snapshotJoinEngine.md +118 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_sync.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_timeBucketEngine.md +125 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_timeSeriesEngine.md +201 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_timerEngine.md +73 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_udfEngine.md +109 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/DStream_windowJoinEngine.md +130 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dailyAlignedBar.md +115 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/database.md +368 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/date.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/datehour.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/datetime.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/datetimeParse.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dayOfMonth.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dayOfWeek.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dayOfYear.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/daysInMonth.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/decimal128.md +89 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/decimal32.md +99 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/decimal64.md +101 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/decimalFormat.md +122 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/decimalMultiply.md +113 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/declareStreamingSQLTable.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/decodeShortGenomeSeq.md +54 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/decompress.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/deepCopy.md +73 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/defined.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/defs.md +92 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/deg2rad.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/deleteDataViewItems.md +91 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/deleteGroup.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/deleteGroupMember.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/deleteMarketHoliday.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/deleteReplicas.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/deleteRule.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/deleteScheduledJob.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/deleteSparseReactiveMetric.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/deleteUser.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/deletechunkmetaonmasterbyid.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/deltas.md +93 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dema.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/demean.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/denseRank.md +90 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/deny.md +83 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/derivative.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/destroyMonitor.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/det.md +103 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/diag.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dict.md +97 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dictUpdate_.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/difference.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/differentialevolution.md +90 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/digitize.md +84 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/disableActivePartition.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/disableQueryMonitor.md +29 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/disableTSDBAsyncSorting.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/disableTablePersistence.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/disabledynamicscriptoptimization.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/disableresourcetracking.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/distance.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/distinct.md +90 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/div.md +106 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dividedDifference.md +111 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dot.md +106 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/double.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/drop.md +88 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dropAggregator.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dropCatalog.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dropColumns_.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dropDataViewEngine.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dropDatabase.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dropDistributedInMemoryTable.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dropFunctionView.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dropHaMvccTable.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dropIPCInMemoryTable.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dropMCPPrompt.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dropMCPTool.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dropOrcaStreamTable.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dropPartition.md +208 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dropSchema.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dropStreamEngine.md +61 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dropStreamGraph.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dropStreamTable.md +79 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dropTable.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dropna.md +95 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dstream_shareddict.md +98 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dstream_sharedkeyedtable.md +128 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dstream_sharedtable.md +124 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dumpheapsample.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/duration.md +86 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dynamicGroupCumcount.md +117 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/d/dynamicGroupCumsum.md +124 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/eig.md +83 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/elasticNet.md +91 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/elasticNetBasic.md +148 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/elasticNetCV.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/ema.md +88 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/emitEvent.md +134 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/enableActivePartition.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/enableQueryMonitor.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/enableTSDBAsyncSorting.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/enableTablePersistence.md +171 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/enableTableShareAndPersistence.md +176 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/enabledynamicscriptoptimization.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/enableresourcetracking.md +68 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/enabletablecachepurge.md +93 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/enabletableshareandcachepurge.md +94 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/enabletdekey.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/enabletransfercompressiontocomputenode.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/encodeShortGenomeSeq.md +81 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/encryptmodule.md +58 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/endsWith.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/enlist.md +73 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/eq.md +94 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/eqDividendCurveBuilder.md +171 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/eqFloat.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/eqObj.md +69 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/eqamericanoptionpricer.md +219 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/eqeuropeanoptionpricer.md +251 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/eqpercent.md +68 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/eqproxyvolatilitysurfacebuilder.md +148 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/eqvolatilitysurfacebuilder.md +148 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/erase_.md +95 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/esd.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/euclidean.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/eval.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/evalTimer.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/ewmCorr.md +83 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/ewmCov.md +83 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/ewmMean.md +132 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/ewmStd.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/ewmVar.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/exists.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/existsCatalog.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/existsDatabase.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/existsPartition.md +81 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/existsStreamTable.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/existsSubscriptionTopic.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/existsTable.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/exp.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/exp2.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/expm1.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/expr.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/extractInstrument.md +91 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/extractMktData.md +77 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/extractTextSchema.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/e/eye.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/fTest.md +59 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/ffill.md +129 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/ffill_.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/fflush.md +54 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/file.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/files.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/fill_.md +148 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/find.md +103 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/first.md +68 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/firstHit.md +54 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/firstNot.md +96 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/fixedLengthArrayVector.md +149 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/flatten.md +102 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/flip.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/float.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/floor.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/flushOLAPCache.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/flushTSDBCache.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/flushcomputenodememcache.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/flushpkeycache.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/fmin.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/fminbfgs.md +97 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/fminlbfgsb.md +96 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/fminncg.md +120 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/fminslsqp.md +126 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/forceTriggerOrderBookSnapshot.md +76 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/form.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/format.md +102 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/fromJson.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/fromStdJson.md +68 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/fromUTF8.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/funcByName.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/fxEuropeanOptionPricer.md +208 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/fxForwardPricer.md +171 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/fxSwapPricer.md +137 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/fxVolatilitySurfaceBuilder.md +188 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/fy5253.md +79 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/f/fy5253Quarter.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/funcs_by_topics.md +329 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/funcs_intro.md +128 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/garch.md +82 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/gaussianNB.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/gaussiankde.md +92 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/gaussiankdepredict.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/ge.md +110 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/gema.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/genShortGenomeSeq.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/generateMachineFingerprint.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/generateuserticket.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/genericStateIterate.md +88 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/genericTStateIterate.md +118 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/genoutputcolumnsforobsnapshotengine.md +106 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/geowithin.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getActiveMaster.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getAggregator.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getAggregatorStat.md +12 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getAllCatalogs.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getAllClusters.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getAllDBGranularity.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getAllDBs.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getAuthenticatedUsers.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getBackupList.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getBackupMeta.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getBackupStatus.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getCEPEngineMonitor.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getCEPEngineStat%20.md +123 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getCEPEngineSubMonitor.md +75 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getCacheEngineMemSize.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getCacheEngineStat.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getCachedSymbolBaseMemSize.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getCatalogsByCluster.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getChunkPath.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getChunksMeta.md +89 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getClusterChunksStatus.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getClusterDFSDatabases.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getClusterDFSTables.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getClusterPerf.md +82 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getClusterStatus.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getClusterVolumeUsage.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getCompletedQueries.md +82 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getComputeNodeCacheDetails.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getConfig.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getConfigure.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getConnections.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getConsoleJobs.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getControllerAlias.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getControllerElectionTick.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getCurrentCatalog.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getCurrentSessionAndUser.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getDBAccess.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getDFSDatabases.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getDFSTablesByDatabase.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getDataViewEngine.md +101 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getDatabaseClusterReplicationStatus.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getDatabasesByCluster.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getDatanodeRestartInterval.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getDfsRebalanceConcurrency.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getDfsRecoveryConcurrency.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getDiskIOStat.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getEnv.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getEventListener.md +100 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getExecDir.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getFunctionViews.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getGroupAccess.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getGroupAccessByCluster.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getGroupList.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getGroupListOfAllClusters.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getGroupsByUserId.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getHaMvccLeader.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getHaMvccRaftGroups.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getHaMvccTableInfo.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getHomeDir.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getIPConnectionLimit.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getInstrumentCoupon.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getInstrumentDayCountConvention.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getInstrumentFarStrike.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getInstrumentField.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getInstrumentKeys.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getJobMessage.md +152 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getJobReturn.md +68 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getJobStat.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getJobStatus.md +73 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getLeftStream.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getLevelFileIndexCacheStats.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getLicenseExpiration.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getLocalIOTDBStaticTable.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getMCPPrompt.md +59 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getMarketCalendar.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getMasterReplicationStatus.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getMemLimitOfQueryResult.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getMemLimitOfTaskGroupResult.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getMemoryStat.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getMktData.md +79 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getNodeAlias.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getNodeHost.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getNodePort.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getNodeType.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getOLAPCacheEngineSize.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getOLAPCacheEngineStat.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getOLAPCachedSymbolBaseMemSize.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getOS.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getOSBit.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getOauthClientSecret.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getOrcaCheckpointConfig.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getOrcaCheckpointJobInfo.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getOrcaCheckpointSubjobInfo.md +58 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getOrcaDataLineage.md +165 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getOrcaStateMachineEventTaskStatus.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getOrcaStreamEngineMeta.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getOrcaStreamTableMeta.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getOrcaStreamTaskSubscriptionMeta.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getPerf.md +86 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getPersistenceMeta.md +80 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getQueryStatus.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getRaftElectionTick.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getRaftLearnersStatus.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getRawScriptLog.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getRecentJobs.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getRecentSlaveReplicationInfo.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getRecoveryTaskStatus.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getRecoveryWorkerNum.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getRedoLogGCStat.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getRightStream.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getRunningQueries.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getScheduledJobs.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getSchemaByCatalog.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getSchemasByCluster.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getSessionMemoryStat.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getSlaveReplicationStatus.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getSnapshotMsgId.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getSparseReactiveMetrics.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getStreamEngine.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getStreamEngineStat.md +353 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getStreamTableChangelog.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getStreamTableFilterColumn.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getStreamingLeader.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getStreamingRaftGroups.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getStreamingSQLStatus.md +61 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getStreamingStat.md +128 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getSubscriptionTopic.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getSupportBundle.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getSystemCpuUsage.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getSystemLoadAvg.md +29 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getTSDBCacheEngineSize.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getTSDBCachedSymbolBaseMemSize.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getTSDBCompactionTaskStatus.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getTSDBMetaData.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getTSDBSortKeyEntry.md +89 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getTableAccessByCluster.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getTableSchemaByCluster.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getTables.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getTablesByCluster.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getTablesOfAllClusters.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getTablet.md +75 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getTabletsMeta.md +77 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getTopicProcessedOffset.md +58 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getTransactionStatus.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getUdfEngineVariable.md +75 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getUnresolvedTxn.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getUserAccess.md +164 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getUserAccessByCluster.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getUserHardwareUsage.md +59 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getUserList.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getUserListOfAllClusters.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getUserLockedStatus.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getUserPasswordStatus.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getUserTableAccessRecords.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getUsersByGroupId.md +29 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getWorkDir.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getaclauditlog.md +109 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getauditlog.md +109 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getauthenticateduserticket.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getcacherulesforcomputegroup.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getclustertdekeys.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getcomputegroupchunksstatus.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getcomputenodecachestat.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getcomputenodecachewarmupjobstatus.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getcomputenodecachingdelay.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getcurrenttdekeyversion.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getdfsdatabasebyowner.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getdynamicconfig.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getenablenullsafejoin.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentcalendar.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentcreditrating.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentcurrency.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentcurrencypair.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentdelivery.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentdirection.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentexpiry.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentfardelivery.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentfarexpiry.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentfixeddaycountconvention.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentfixedrate.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentfloatingdaycountconvention.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentfrequency.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentiborindex.md +54 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentinstrumentid.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentissueprice.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentmaturity.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentneardelivery.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentnearexpiry.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentnearstrike.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentnominal.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentnominalcouponrate.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentnotionalamount.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentnotionalcurrency.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentpayofftype.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentpayreceive.md +54 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentrate.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentsettlement.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentspread.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentstart.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentstrike.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentsubtype.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getinstrumentunderlying.md +83 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getipblacklist.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getipwhitelist.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getloadedmodules.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getloadedplugins.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getmemlimitofalltempresults.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getpkeycompactiontaskstatus.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getpkeymetadata.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getprefetchcomputenodedata.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getreactivemetrics.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getrules.md +82 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getsessionexpiredtime.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getslavereplicationexecutionstatus.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getslavereplicationqueuestatus.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getstatelessmetrics.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getstreamenginelist.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getstreamingsqlsubscriptioninfo.md +59 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getstreamtablecacheoffset.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/getstreamtables.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/gettableaccess.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/gettradingcalendartype.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/gettsdbdatastat.md +98 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/gettsdbtableindexcachestatus.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/glm.md +107 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/gmd5.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/gmm.md +83 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/gmtime.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/gpfit.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/gppredict.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/gram.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/gramSchmidt.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/grant.md +195 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/groups.md +69 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/g/gt.md +102 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/getStreamGraph.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/getStreamGraphInfo.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/getStreamGraphMeta.md +59 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/h/haMvccTable.md +58 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/h/haStreamTable.md +84 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/h/hasNull.md +69 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/h/hashBucket.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/h/head.md +86 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/h/hex.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/h/highDouble.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/h/highlong.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/h/histogram.md +114 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/h/histogram2d.md +101 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/h/hmac.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/h/hour.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/h/hourOfDay.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/accumulate.md +270 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/aggrTopN.md +124 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/all.md +134 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/any.md +133 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/byColumn.md +243 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/byRow.md +195 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/call.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/composition.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/contextby.md +253 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/cross.md +185 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/each.md +299 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/eachLeft.md +152 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/eachPost.md +123 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/eachPre.md +171 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/eachRight.md +149 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/groupby.md +93 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/ho_funcs.md +124 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/loop.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/moving.md +180 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/movingvalid.md +152 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/nothrowcall.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/nullCompare.md +73 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/pcall.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/pcross.md +17 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/peach.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/pivot.md +144 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/ploop.md +15 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/reduce.md +188 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/rolling.md +201 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/rowgroupby.md +102 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/segmentby.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/talib.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/tmoving.md +114 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/twindow.md +182 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/unifiedCall.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/window.md +125 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/ho_funcs/withNullFill.md +77 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/ifNull.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/ifValid.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/ifirstHit.md +54 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/ifirstNot.md +69 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/iif.md +119 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/ilastNot.md +73 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/ilike.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/imax.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/imaxlast.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/imin.md +61 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/iminlast.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/imr.md +77 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/imtForceGCRedolog.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/imtUpdateChunkVersionOnDataNode.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/in.md +106 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/indexedSeries.md +106 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/indexedTable.md +280 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/initcap.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/initimoltpcheckpointencryption.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/installPlugin.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/installmodule.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/instrumentPricer.md +580 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/int.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/int128.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/integral.md +77 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/interpolate.md +100 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/intersection.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/invBeta.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/invBinomial.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/invChiSquare.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/invExp.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/invF.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/invGamma.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/invLogistic.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/invNormal.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/invPoisson.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/invStudent.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/invUniform.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/invWeibull.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/inverse.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/ipaddr.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/irCrossCurrencyCurveBuilder.md +188 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/irDepositPricer.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/irFixedFloatingSwapPricer.md +229 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/irSingleCurrencyCurveBuilder.md +201 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isAlNum.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isAlpha.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isCheckpointingHaMvcc.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isChunkNodeInit.md +12 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isColumnarTuple.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isControllerInitialized.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isDataNodeInitialized.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isDigit.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isDuplicated.md +98 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isIndexedMatrix.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isIndexedSeries.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isLeapYear.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isLoggedIn.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isLower.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isMonotonic.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isMonotonicDecreasing.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isMonotonicIncreasing.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isMonthEnd.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isMonthStart.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isNanInf.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isNothing.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isNull.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isNumeric.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isOrderedDict.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isPeak.md +79 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isQuarterEnd.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isQuarterStart.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isSorted.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isSpace.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isTitle.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isUpper.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isValid.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isValley.md +79 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isVoid.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isYearEnd.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isYearStart.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isclientauth.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isort.md +144 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isortTop.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/isort_.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/istransfercompressiontocomputenodeenabled.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/i/iterate.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/j/join!.md +170 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/j/join.md +153 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/j/jsonextract.md +84 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/k/kama.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/k/kendall.md +81 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/k/kernelRidge.md +118 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/k/keyedStreamTable.md +138 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/k/keyedTable.md +279 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/k/keys.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/k/kmeans.md +79 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/k/knn.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/k/kroghinterpolate.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/k/kroghinterpolatefit.md +89 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/k/ksTest.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/k/kurtosis.md +100 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/lasso.md +90 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/lassoBasic.md +143 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/lassoCV.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/last.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/lastNot.md +108 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/lastWeekOfMonth.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/latestIndexedTable.md +106 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/latestKeyedTable.md +107 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/latestkeyedstreamtable.md +153 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/le.md +95 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/left.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/lfill.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/lfill_.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/license.md +75 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/like.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/linearTimeTrend.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/linearinterpolatefit.md +84 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/linprog.md +105 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/listAllMarkets.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/listMCPPrompts.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/listMCPTools.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/listPluginsByCluster.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/listRemotePlugins.md +80 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/listStreamingSQLTables.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/listTables.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/listremotemodules.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/loadBackup.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/loadDistributedInMemoryTable.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/loadHaMvccTable.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/loadIPCInMemoryTable.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/loadModel.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/loadModule.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/loadMvccTable.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/loadNpy.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/loadNpz.md +76 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/loadPlugin.md +114 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/loadRecord.md +84 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/loadTable.md +88 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/loadTableBySQL.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/loadText.md +402 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/loadTextEx.md +251 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/loadVocab.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/loadmodulefromscript.md +76 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/loc.md +213 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/localtime.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/lockUser.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/loess.md +109 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/log.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/log10.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/log1p.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/log2.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/login.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/logisticRegression.md +115 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/logout.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/long.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/lowDouble.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/lowRange.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/lower.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/lowerbound.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/lowlong.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/lpad.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/lshift.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/lt.md +107 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/ltrim.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/l/lu.md +96 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/ma.md +29 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mad.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mahalanobis.md +54 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/makeCall.md +81 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/makeKey.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/makeSortedKey.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/makeUnifiedCall.md +98 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mannWhitneyUTest.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/manova.md +96 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mask.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/matchFuzzy.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/matchall.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/matchany.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/matchedrowcount.md +76 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/matchphrase.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/matchphraseinfix.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/matchphraseprefix.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/matchphrasesuffix.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/matchprefix.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/matchprefixsuffix.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/matchspan.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/matchsuffix.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/matchunorderedspan.md +54 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/matrix.md +142 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/matrixRank.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mavg.md +93 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mavgTopN.md +127 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/max.md +129 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/maxPositiveStreak.md +71 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/maxdrawdown.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/maxignorenull.md +77 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mbeta.md +82 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mbetaTopN.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mcorr.md +82 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mcorrTopN.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mcount.md +111 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mcovar.md +85 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mcovarTopN.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mcovarp.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mcovarpTopN.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/md5.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mdd.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mean.md +75 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/med.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mem.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/memSize.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/member.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/membermodify.md +151 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/merge.md +76 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mfirst.md +86 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mfirstnot.md +106 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/microsecond.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mifirstNot.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/migrate.md +140 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/milastNot.md +71 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/millisecond.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mimax.md +113 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mimaxlast.md +84 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mimin.md +109 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/miminlast.md +86 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/min.md +131 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/minignorenull.md +69 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/minkowski.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/minute.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/minuteOfHour.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mkdir.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mkurtosis.md +120 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mkurtosisTopN.md +96 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mlast.md +86 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mlastnot.md +104 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mlowrange.md +82 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mmad.md +82 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mmax.md +86 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mmaxPositiveStreak.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mmed.md +83 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mmin.md +92 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mmse.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mod.md +79 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mode.md +83 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/month.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/monthBegin.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/monthEnd.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/monthOfYear.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/move.md +77 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/moveChunksAcrossVolume.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/moveHotDataToColdVolume.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/moveReplicas.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/movingTopNIndex.md +95 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/movingWindowData.md +75 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/movingWindowIndex.md +59 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mpercentile.md +134 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mpercentiletopn.md +158 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mprod.md +85 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mr.md +179 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mrank.md +155 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mskew.md +109 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mskewTopN.md +96 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mslr.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mstd.md +107 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mstdTopN.md +71 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mstdp.md +104 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mstdpTopN.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/msum.md +85 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/msum2.md +71 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/msumTopN.md +128 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mtoprange.md +80 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mul.md +88 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/multiTableRepartitionDS.md +87 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/multinomialNB.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mutualInfo.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mvar.md +104 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mvarTopN.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mvarp.md +104 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mvarpTopN.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mvccTable.md +179 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mwavg.md +93 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mwsum.md +97 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/m/mwsumTopN.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/nanInfFill.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/nanosecond.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/nanotime.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/nanotimestamp.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/ne.md +97 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/neg.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/neville.md +113 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/next.md +61 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/nextState.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/norm.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/normal.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/not.md +85 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/notbetween.md +86 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/notin.md +126 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/notlike.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/now.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/ns.md +83 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/nss.md +116 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/nsspredict.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/nullFill.md +141 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/nullFill_.md +18 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/nullIf.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/n/nunique.md +122 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/o/oauthlogin.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/o/objByName.md +80 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/o/objectChecksum.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/o/objectComponent.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/o/objectType.md +71 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/o/objs.md +108 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/o/ols.md +186 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/o/olsEx.md +120 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/o/oneHot.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/o/optionVolPredict.md +164 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/o/or.md +86 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/o/osqp.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/pack.md +105 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/pair.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/panel.md +102 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/parseExpr.md +147 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/parseInstrument.md +620 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/parseInt.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/parseInteger.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/parseMktData.md +201 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/parsejsontable.md +118 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/partial.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/pca.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/pchipInterpolateFit.md +81 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/pdfChiSquare.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/pdfF.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/pdfNormal.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/peekAppend.md +77 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/percentChange.md +126 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/percentile.md +96 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/percentileRank.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/piecewiselinfit.md +121 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/pinverse.md +89 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/pipeline.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/ploadText.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/plot.md +186 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/plotHist.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/pnodeRun.md +155 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/point.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/poly1d.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/polyPredict.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/polyfit.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/polynomial.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/pop_.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/portfolioPricer.md +584 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/pow.md +71 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/power.md +15 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/predict.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/prev.md +58 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/prevState.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/print.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/prod.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/publishMCPPrompts.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/publishMCPTools.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/purgeCacheEngine.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/push_.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/p/pwlfpredict.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/purgeStreamGraphRecords.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/q/qclp.md +75 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/q/qcut.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/q/qr.md +149 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/q/quadprog.md +113 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/q/quantile.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/q/quantileSeries.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/q/quarterBegin.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/q/quarterEnd.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/q/quarterOfYear.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rad2deg.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rand.md +82 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/randBeta.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/randBinomial.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/randChiSquare.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/randDiscrete.md +59 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/randExp.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/randF.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/randGamma.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/randLogistic.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/randMultivariateNormal.md +61 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/randNormal.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/randPoisson.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/randStudent.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/randUniform.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/randWeibull.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/randomForestClassifier.md +94 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/randomForestRegressor.md +93 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rank.md +178 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/ratio.md +106 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/ratios.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rdp.md +58 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/readBytes.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/readLine.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/readLines.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/readLines_.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/readObject.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/readRecord_.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/read_.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rebalanceChunksAmongDataNodes.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rebalanceChunksWithinDataNode.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/reciprocal.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/recursiveSplitText.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/refCount.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/regexCount.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/regexFind.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/regexReplace.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/regexfindstr.md +80 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/registerStreamingSQL.md +58 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/regroup.md +104 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/remoteRun.md +104 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/remoteRunWithCompression.md +30 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/remoteruncompatible.md +86 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/remove.md +79 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/removeHead_.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/removeTail_.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/removeTopicOffset.md +22 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/removecacherulesforcomputegroup.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/removeipblacklist.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/removeipwhitelist.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/removenode.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/renameCatalog.md +29 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/renameCatalogName.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/renameSchema.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/renameTable.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rename_.md +188 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/reorderColumns_.md +85 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/repartitionDS.md +92 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/repeat.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/replace.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/replaceColumn_.md +137 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/replace_.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/replay.md +381 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/replayDS.md +101 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/repmat.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/resample.md +189 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/resetDBDirMeta.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/resetDfsRebalanceConcurrency.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/resetDfsRecoveryConcurrency.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/resetPwd.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/resetRecoveryWorkerNum.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/reshape.md +81 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/residual.md +87 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/restore.md +134 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/restoreDB.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/restoreDislocatedTablet.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/restoreTable.md +85 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/restoresettings.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/resubmitStreamGraph.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/resumeRecovery.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/resumeTimerEngine.md +68 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/reverse.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/revoke.md +92 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/revokeStreamingSQL.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/revokeStreamingSQLTable.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/ridge.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/ridgeBasic.md +158 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/ridgeCV.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/right.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rm.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rmdir.md +68 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rms.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rollingPanel.md +59 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rotatetdekey.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/round.md +95 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/routeEvent.md +113 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/row.md +77 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowAlign.md +118 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowAnd.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowAt.md +123 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowAvg.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowBeta.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowCorr.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowCount.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowCovar.md +61 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowCovarp.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowCummax.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowCummin.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowCumprod.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowCumsum.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowCumwsum.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowDenseRank.md +76 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowDot.md +75 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowEuclidean.md +69 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowImax.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowImin.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowKurtosis.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowMax.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowMin.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowMove.md +71 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowNames.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowNext.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowNo.md +77 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowOr.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowPrev.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowProd.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowRank.md +170 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowSize.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowSkew.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowStd.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowStdp.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowSum.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowSum2.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowTanimoto.md +75 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowVar.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowVarp.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowWavg.md +54 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowWsum.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowXor.md +61 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowfilterandsort.md +126 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowgmd5.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowimaxlast.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowiminlast.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rowmergeandsort.md +84 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rows.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rpad.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rpc.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rshift.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/rtrim.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/run.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/runScript.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/runexternalquery.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/r/runsql.md +108 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/StreamGraph_changelogSource.md +87 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/StreamGraph_deleteRule.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/StreamGraph_dropGraph.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/StreamGraph_haKeyedSource.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/StreamGraph_haSource.md +59 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/StreamGraph_keyedSource.md +85 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/StreamGraph_latestKeyedSource.md +84 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/StreamGraph_name.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/StreamGraph_setConfigMap.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/StreamGraph_setLocalConfigOnce.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/StreamGraph_source.md +81 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/StreamGraph_sourceByName.md +61 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/StreamGraph_str.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/StreamGraph_submit.md +88 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/StreamGraph_toGraphviz.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/StreamGraph_updateRule.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/saveAsNpy.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/saveDatabase.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/saveDualPartition.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/saveModel.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/saveModule.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/savePartition.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/saveTable.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/saveText.md +91 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/saveTextFile.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/scheduleJob.md +116 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/schema.md +290 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/schur.md +109 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/scramClientFinal.md +184 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/scramClientFirst.md +186 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/scs.md +93 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/searchK.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/seasonalEsd.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/second.md +69 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/secondOfMinute.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/seek.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/segment.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sem.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/semiMonthBegin.md +109 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/semiMonthEnd.md +102 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/semiannualBegin.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/semiannualEnd.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sendEvent.md +112 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/seq.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sessionWindow.md +106 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/set.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setAtomicLevel.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setChunkLastUpdateTime.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setColumnComment.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setColumnarTuple_.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setDatabaseForClusterReplication.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setDatanodeRestartInterval.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setDefaultCatalog.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setHaMvccColumnDefaultValue.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setHaMvccColumnNullability.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setIPConnectionLimit.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setIndexedMatrix_.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setIndexedSeries_.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setLogLevel.md +21 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setMaxBlockSizeForReservedMemory.md +24 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setMaxConnections.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setMaxJobParallelism.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setMaxJobPriority.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setMaxMemSize.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setMaxTransactionSize.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setMemLimitOfQueryResult.md +23 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setMemLimitOfTaskGroupResult.md +23 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setMemLimitOfTempResult.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setOLAPCacheEngineSize.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setOrcaCheckpointConfig.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setRaftElectionTick.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setRandomSeed.md +30 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setReservedMemSize.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setRetentionPolicy.md +77 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setStreamTableFilterColumn.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setSystem.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setTSDBCacheEngineSize.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setTableSensitiveColumn.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setTimeoutTick.md +29 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setcomputenodecachingdelay.md +29 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setdatabaseclusterreplicationexecutionset.md +30 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setdynamicconfig.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setgpfitnessfunc.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setmemlimitofalltempresults.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setprefetchcomputenodedata.md +29 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setsessionexpiredtime.md +30 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/setstreamtabletimestamp.md +54 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/settablecomment.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/seuclidean.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/shape.md +94 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/shapiroTest.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/share.md +112 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/shell.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/short.md +77 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/shuffle.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/shuffle_.md +19 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/signbit.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/signum.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sin.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sinh.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sinppet.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/size.md +82 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/skew.md +94 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/skipClusterReplicationTask.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sleep.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/slice.md +211 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sliceByKey.md +92 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sma.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/socp.md +101 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/solve.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sort.md +77 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sortBy_.md +61 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sort_.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/spawnMonitor.md +81 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/spearmanr.md +61 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/splev.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/spline.md +102 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/split.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/splrep.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sql.md +237 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sqlCol.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sqlColAlias.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sqlDS.md +69 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sqlDelete.md +82 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sqlTuple.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sqlUpdate.md +186 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sqrt.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/square.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/startClusterReplication.md +30 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/startDataNode.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/startStreamGraph.md +75 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/startheapsample.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/startsWith.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/stat.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/stateIterate.md +114 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/stateMavg.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/std.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/stdp.md +58 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/stl.md +88 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/stopClusterReplication.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/stopDataNode.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/stopStreamGraph.md +69 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/stopSubEngine.md +23 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/stopTimerEngine.md +69 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/stopheapsample.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/strReplace.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/streamEngineParser.md +275 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/streamEventSerializer.md +174 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/streamFilter.md +282 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/streamTable.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/stretch.md +107 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/string.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/stringFormat.md +120 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/strip.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/strlen.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/strlenu.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/strpos.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sub.md +101 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/subarray.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/submitJob.md +136 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/submitJobEx.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/submitJobEx2.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/subscribeStreamingSQL.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/subscribeTable.md +355 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/substr.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/substru.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/subtuple.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sum.md +54 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sum2.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sum3.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sum4.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/sumbars.md +71 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/summary.md +102 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/suspendRecovery.md +24 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/svd.md +76 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/symbol.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/symbolCode.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/symmetricDifference.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/syncDict.md +123 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/s/syntax.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/t3.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tTest.md +111 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/table.md +187 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tableInsert.md +114 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tableUpsert.md +113 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tail.md +90 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/take.md +155 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/talibNull.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tan.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tanh.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tanimoto.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tema.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/temporalAdd.md +127 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/temporalDeltas.md +83 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/temporalDiff.md +61 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/temporalFormat.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/temporalParse.md +179 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/temporalSeq.md +133 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tensor.md +132 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/terminate.md +100 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/test.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/textChunkDS.md +86 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/til.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/time.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/timestamp.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmavg.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmavgTopN.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmbeta.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmbetaTopN.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmcorr.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmcorrTopN.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmcount.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmcovar.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmcovarTopN.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmcovarp.md +76 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmcovarpTopN.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmfirst.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmkurtosis.md +84 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmkurtosisTopN.md +61 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmlast.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmlowrange.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmmax.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmmed.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmmin.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmove.md +79 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmovingWindowData.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmpercentile.md +87 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmprod.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmrank.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmskew.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmskewTopN.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmstd.md +83 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmstdTopN.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmstdp.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmstdpTopN.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmsum.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmsum2.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmsumTopN.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmtoprange.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmvar.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmvarTopN.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmvarp.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmvarpTopN.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmwavg.md +86 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmwsum.md +86 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tmwsumTopN.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/toArray.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/toCharArray.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/toJson.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/toStdJson.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/toUTF8.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tocolumnartuple.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/today.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tokenize.md +58 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tokenizeBert.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/topRange.md +68 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/totuple.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/transDS_.md +61 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/transFreq.md +128 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/transpose.md +164 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/treasuryconversionfactor.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/triggerNodeReport.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/triggerPKEYCompaction.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/triggerTSDBCompaction.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/triggercheckpointforimoltp.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tril.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/trim.md +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/trima.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/triu.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/trueRange.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/truncate.md +54 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/tupleSum.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/type.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/t/typestr.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/themes/TAlib.md +83 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/themes/TopN.md +129 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/themes/cepFunctions.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/themes/cepFunctions_2.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/themes/cumFunctions.md +84 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/themes/cumTopN.md +91 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/themes/mFunctions.md +165 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/themes/orcaFunctions.md +80 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/themes/rowFunctions.md +150 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/themes/streamingEngine.md +15 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/themes/streaming_sql.md +23 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/themes/themes.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/themes/tmFunctions.md +106 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/themes/tmTopN.md +98 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/undef.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/ungroup.md +109 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/unifiedExpr.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/union.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/unionAll.md +194 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/unloadVocab.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/unlockUser.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/unpack.md +93 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/unpivot.md +156 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/unsubscribeStreamingSQL.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/unsubscribeTable.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/updateDataViewItems.md +107 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/updateLicense.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/updateMCPPrompt.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/updateMCPTool.md +81 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/updateMarketHoliday.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/updateOrderBookEngineParams.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/updateRule.md +118 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/update_.md +111 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/update_stream_graph_user_tickets.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/updatepkeydeletebitmap.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/upper.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/upsert_.md +212 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/useOrcaStreamEngine.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/useOrcaStreamTable.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/u/uuid.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/v/valueChanged.md +93 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/v/values.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/v/vanillaoption.md +193 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/v/var.md +83 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/v/var_0.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/v/varma.md +93 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/v/varp.md +61 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/v/vectorar.md +103 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/v/vectornorm.md +128 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/v/version.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/v/volumeBar.md +116 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/warmupOrcaStreamEngine.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/warmupStreamEngine.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/warmupcomputenodecache.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/wavg.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/wc.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/wcovar.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/weekBegin.md +139 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/weekEnd.md +137 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/weekOfMonth.md +76 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/weekOfYear.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/weekday.md +54 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/wilder.md +59 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/winsorize.md +77 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/winsorize_.md +18 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/withdrawMCPPrompts.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/withdrawMCPTools.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/wls.md +137 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/wma.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/write.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/writeBytes.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/writeLine.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/writeLines.md +54 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/writeLog.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/writeObject.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/writeRecord.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/writeloglevel.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/wslr.md +83 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/wsum.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/w/wsum2.md +37 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/x/xdb.md +63 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/x/xor.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/y/year.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/y/yearBegin.md +95 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/y/yearEnd.md +94 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/y/yearFrac.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/z/zTest.md +87 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/z/zigzag.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/funcs/z/zscore.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/getstarted/chap1_getstarted.md +331 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/mcp/architecture_scope.md +321 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/mcp/develop_mcp_tool.md +196 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/mcp/examples.md +94 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/mcp/mcp_introduction.md +22 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/mcp/mcp_use_guide.md +280 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/mcp/quick_start.md +234 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/mcp/stock_mcp.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/mcp/tools.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/modules/MarketHoliday/mkt_calendar.md +502 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/modules/easyNSQ/easynsq.md +877 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/modules/easyNSQ/easynsq_2.md +877 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/modules/easyTLDataImport/easytl_data_import.md +916 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/modules/gtja191Alpha/191alpha.md +205 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/modules/mytt/mytt.md +456 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/modules/ops/ops.md +921 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/modules/ta/ta.md +539 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/modules/wq101alpha/wq101alpha.md +396 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/omc/omc_connection_lost_guidelines.md +90 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/omc/omc_server_hang_guidelines.md +118 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/omc/omc_slow_io_guidelines.md +176 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/ASTTrader.md +610 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/Arrow/arrow.md +119 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/CSM.md +374 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/EncoderDecoder.md +476 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/LDAP.md +170 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/MDL.md +447 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/MatchingEngine/me.md +161 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/SSEQuotationFile.md +139 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/amdquote/amdhistory.md +212 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/amdquote/amdquote.md +459 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/amdquote/amdquote_2.md +459 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/aws/aws.md +363 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/backtest/digital_currency.md +242 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/backtest/futures.md +393 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/backtest/interbank_bonds.md +213 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/backtest/interface_description.md +1743 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/backtest/multi_asset.md +238 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/backtest/option.md +309 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/backtest/performance_tuning.md +868 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/backtest/quick_start.md +329 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/backtest/release/3_00_2.md +192 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/backtest/release/3_00_3.md +132 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/backtest/release/3_00_4.md +87 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/backtest/release/3_00_5.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/backtest/stock.md +905 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/backtest.md +786 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/ctp.md +286 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/ctp_2.md +286 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/ctp_best_practice.md +689 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/datafeed.md +225 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/dataxwriter/README_CN.md +359 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/efh.md +327 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/excel_add_in.md +307 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/feather/feather.md +202 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/gp/gp.md +92 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/hbase/hbase.md +257 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/hdf5/hdf5.md +614 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/hdfs/hdfs.md +441 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/httpClient/httpclient.md +285 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/input.md +138 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/insight/insight.md +259 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/insight/insight_2.md +259 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/kafka/kafka.md +994 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/kdb/kdb.md +574 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/lgbm.md +200 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/libtorch/libtorch.md +248 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/mat/mat.md +191 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/matchingEngineSimulator/mes.md +948 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/matchingEngineSimulator/rn.md +210 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/mongodb/mongodb.md +282 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/mqtt/mqtt.md +446 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/mqtt5.md +272 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/mseed/mseed.md +249 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/mysql/mysql.md +405 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/nsq/nsq.md +304 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/nsq/nsq_2.md +304 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/odbc/odbc.md +434 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/odbc/odbc_faq.md +707 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/opc/opc.md +279 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/opcua/opcua.md +390 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/orc.md +251 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/order_management_engine.md +365 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/parquet/parquet.md +349 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/performance_comparison.md +527 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/plg_dev_adv.md +643 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/plg_dev_tutorial.md +875 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/plg_howtos.md +175 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/plg_intro.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/plg_mkt_inst.md +50 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/pulsar.md +317 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/py/py.md +536 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/py/py_3_9.md +930 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/quantlib/quantlib.md +3681 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/quick_fix.md +293 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/rabbitMQ.md +850 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/redis.md +765 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/rocketMQ.md +211 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/sevenzip.md +120 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/signal/signal.md +498 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/signal/sipui2.md +237 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/simulatedexchangeengine.md +542 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/slwriter.md +159 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/svm/svm.md +216 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/tcpsocket.md +217 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/uniqueid.md +134 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/websocket.md +203 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/windtdf.md +301 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/windtdf_tutorial.md +310 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/xgboost/xgboost.md +209 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/xtp.md +624 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/zip/zip.md +107 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/zlib/zlib.md +92 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/plugins/zmq/zmq.md +513 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/anonym_func.md +87 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/application.md +295 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/attributes.md +69 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/class_objects.md +83 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/closure.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/constructor.md +18 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_forms.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_mani/create_strings.md +247 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_mani/detect_null.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_mani/dm_intro.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_mani/format_temp_obj.md +189 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_mani/func_null.md +109 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_mani/init_null.md +125 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_mani/null_in_tb.md +83 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_mani/null_in_vst.md +83 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_mani/null_oper.md +67 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_mani/null_scalar.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_mani/process_null.md +72 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_mani/replace_null.md +170 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_mani/search_in_string.md +58 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_mani/sort_null.md +69 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_mani/string_obj.md +15 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_mani/string_oper.md +273 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_mani/temp_obj_mani.md +251 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_mani/temp_type_conv.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_mani/temporal_obj.md +9 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_mani/tzone_conv.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_types.md +280 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_types_forms/BigArray.md +93 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_types_forms/Dictionary.md +386 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_types_forms/Matrix.md +1119 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_types_forms/Pair.md +154 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_types_forms/Scalar.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_types_forms/Set.md +179 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_types_forms/Table.md +338 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_types_forms/TupleANYVector.md +301 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_types_forms/arrayVector.md +359 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_types_forms/columnarTuple.md +204 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_types_forms/data_type_conv.md +1079 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_types_forms/subarray.md +58 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_types_forms/vector.md +767 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/data_types_forms_intro.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/file_io/file_oper.md +113 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/file_io/process_bin.md +268 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/file_io/process_txt.md +94 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/file_io/tb_io.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/func_progr.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/inheritance.md +110 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/lambda.md +152 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/lang_intro.md +13 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/macrovariations.md +181 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/member_function.md +135 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/metaProgr_func.md +110 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/named_func.md +220 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/objs/col_ref.md +147 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/objs/const.md +129 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/objs/dyn_tuple.md +16 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/objs/expr.md +259 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/objs/func_call.md +124 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/objs/meta_progr.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/objs/named_obj.md +55 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/objs/objects.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/objs/sql_query.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/objs/undef_var.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/objs/var.md +98 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/oop.md +12 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/add.md +89 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/and.md +97 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/at.md +95 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/cast.md +100 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/chainingComparison.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/div.md +120 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/dot.md +88 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/eachAt.md +108 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/eq.md +88 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/ge.md +102 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/gt.md +102 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/intersectionsetbitAnd.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/join.md +117 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/le.md +88 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/lshift.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/lt.md +102 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/member.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/mod.md +76 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/mul.md +79 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/ne.md +111 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/neg.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/not.md +79 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/oper_list.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/operators.md +87 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/or.md +95 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/pair.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/precedence.md +120 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/ratio.md +96 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/rshift.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/seq.md +52 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/sub.md +94 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/symmetricDifferencesetbitXor.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/ternary_operator.md +157 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/operators/unionsetbitOr.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/partial_app.md +177 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/progr_intro.md +76 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/rfc.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/Select.md +288 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/alter.md +89 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/analyticFunction.md +404 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/any.md +99 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/asofjoin.md +217 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/between.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/case.md +112 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/cgroupby.md +78 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/coalesce.md +68 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/contextBy.md +293 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/create.md +476 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/createExternalTable.md +125 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/crossjoin.md +96 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/delete.md +193 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/distinct.md +53 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/drop.md +99 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/equijoin.md +415 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/exe_order.md +246 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/exec.md +117 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/exists.md +101 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/fulljoin.md +90 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/getTraces.md +41 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/groupby.md +205 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/having.md +103 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/hint.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/hint_explain.md +705 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/in.md +59 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/innerjoin.md +154 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/insertInto.md +175 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/interval.md +195 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/isnull.md +43 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/join.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/leftjoin.md +293 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/like.md +62 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/limit.md +83 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/map.md +108 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/notbetween.md +64 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/notin.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/notlike.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/orderby.md +113 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/partition.md +86 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/pivotBy.md +359 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/predicates.md +22 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/prefixjoin.md +98 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/rightjoin.md +235 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/roll.md +231 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/sample.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/setTraceMode.md +28 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/sql_ddl.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/sql_dml.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/sql_dql.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/sql_intro.md +75 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/sql_trace.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/tb_joiner_intro.md +134 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/top.md +59 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/union.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/update.md +539 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/viewTraceInfo.md +120 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/where.md +234 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/windowjoin.md +269 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/sql/with.md +54 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/Include.md +59 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/annotate.md +39 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/assert.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/assignments/assign_by_ref.md +77 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/assignments/assign_by_value.md +111 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/assignments/assign_intro.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/assignments/assign_multi.md +88 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/assignments/undef.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/blockStatement.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/break.md +33 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/comment.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/continue.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/doWhile.md +47 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/for.md +96 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/go.md +161 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/ifElse.md +56 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/mapr.md +104 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/module.md +23 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/return.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/share.md +104 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/statements_intro.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/throw.md +23 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/timer.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/transaction.md +132 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/tryCatch.md +42 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/statements/use.md +46 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/tensor.md +24 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/progr/utility.md +99 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/AdvancedOperations/DataTypeCasting/ForceTypeCasting.md +161 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/AdvancedOperations/DataTypeCasting/PROTOCOL_ARROW.md +87 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/AdvancedOperations/DataTypeCasting/PROTOCOL_DDB.md +714 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/AdvancedOperations/DataTypeCasting/PROTOCOL_PICKLE.md +116 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/AdvancedOperations/DataTypeCasting/TypeCasting.md +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/AdvancedOperations/EventSendSub/event.md +154 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/AdvancedOperations/EventSendSub/eventclient.md +256 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/AdvancedOperations/EventSendSub/eventsender.md +210 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/AdvancedOperations/EventSendSub/eventsendsub.md +19 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/AdvancedOperations/ObjectOrientedOperationsOnDdbOBjects/Database.md +420 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/AdvancedOperations/ObjectOrientedOperationsOnDdbOBjects/Table.md +921 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/AdvancedOperations/OtherFunctions/OtherFunctions.md +154 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/AdvancedOperations/SubscriptionOptions/SubscriptionOptions.md +303 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/AdvancedOperations/WriteOptions/WriteOptions.md +229 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/AdvancedOperations/convert_type.md +12 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/AdvancedOperations/ddb_ooo.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/BasicOperations/AsyncWrites/BatchTableWriter.md +196 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/BasicOperations/AsyncWrites/MultithreadedTableWriter.md +577 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/BasicOperations/AsyncWrites/SessionAsyncMode.md +151 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/BasicOperations/AutoFitTableAppender/PartitionedTableAppender.md +95 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/BasicOperations/AutoFitTableAppender/TableAppender.md +145 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/BasicOperations/AutoFitTableAppender/TableUpserter.md +151 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/BasicOperations/DBConnectionPool/AsyncMethodsAndOthers.md +341 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/BasicOperations/DBConnectionPool/Constructor.md +219 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/BasicOperations/DBConnectionPool/simple_dbconnection_pool.md +276 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/BasicOperations/Session/Connect.md +155 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/BasicOperations/Session/Constructor.md +263 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/BasicOperations/Session/OtherParams.md +533 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/BasicOperations/Subscription/Subscription.md +202 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/BasicOperations/async_write.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/BasicOperations/connection_pool.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/BasicOperations/serialization.md +274 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/BasicOperations/session_connect.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/BasicOperations/table_append.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/QuickStart/Demo.md +313 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/QuickStart/Install.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/adv_oper.md +17 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/basic_oper.md +17 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/py.md +27 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/py_api_inst_offline.md +548 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/py_vamos.md +15 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/release_notes/3_0_3.md +23 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/release_notes/3_0_4.md +48 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/release_notes/rn_13010_py.md +13 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/release_notes/rn_13015_py.md +14 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/release_notes/rn_13016_py.md +20 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/release_notes/rn_13017_py.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/release_notes/rn_13019_py.md +106 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/release_notes/rn_13021_py.md +59 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/release_notes/rn_13022_py.md +117 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/release_notes/rn_1305_py.md +14 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/release_notes/rn_1306_py.md +20 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/release_notes/rn_1307_py.md +13 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/release_notes/rn_1308_py.md +21 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/release_notes/rn_1309_py.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/release_notes/rn_2011_py.md +26 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/release_notes/rn_3000_py.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/release_notes/rn_3001_py.md +31 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/release_notes/rn_3002_py.md +82 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/pydoc/release_notes/rn_py.md +14 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/compact_report_3_00_2.md +443 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/compact_report_3_00_3.md +226 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/compact_report_3_00_4.md +341 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/compact_report_3_00_5.md +204 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/compat1.md +25 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/compat2.md +24 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/compat3.md +22 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/compat4.md +22 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/compat5.md +20 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/compat_def.md +51 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/compat_lv.md +14 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/compat_report_3_00_0.md +60 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/compat_report_3_00_1.md +131 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/plugin/3_00_0.md +297 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/plugin/3_00_1.md +265 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/plugin/3_00_2.md +385 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/plugin/3_00_3.md +267 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/plugin/3_00_4.md +230 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/plugin/3_00_5.md +93 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/rn_gui.md +230 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/rn_vscode.md +218 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/rn_web.md +557 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/security.md +9 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/server/3_00_0.md +207 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/server/3_00_1.md +300 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/server/3_00_2.md +448 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/server/3_00_3.md +519 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/server/3_00_4.md +312 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/server/3_00_5.md +267 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/server/api.md +9 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/server/datax_dolphindbreader_0.md +24 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/server/datax_writer.md +34 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/server/grafana.md +40 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/rn/server/third_party_rn.md +9 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/anomaly_detection_engine.md +343 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/asof_join_engine.md +155 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/cep.md +35 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/cep_basic_concept.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/cep_engine.md +282 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/cep_events_defining.md +74 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/cep_monitor_defining.md +164 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/cep_monitoring.md +194 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/cep_viewing.md +101 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/cluster_sub.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/cross_cluster_sub.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/cross_sectional_engine.md +303 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/datafeed_best_practice.md +444 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/defining_event_listeners.md +138 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/dual_ownership_engine.md +110 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/equi_join_engine.md +153 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/event_stream_serializer.md +68 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/leftsemi_join_engine.md +181 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/local_sub.md +69 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/lookup_join_engine.md +217 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/mdl_best_practice.md +827 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/narrow_reactive_state_engine.md +151 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/nearest_join_engine.md +138 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/nsq.md +23 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/orca.md +665 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/py_sub.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/reactive_state_engine.md +495 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/reactive_stateless_engine.md +285 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/realtime_data_acces.md +12 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/rule_engine.md +281 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/session_window_engine.md +138 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/snapshot_join_engine.md +230 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/stateful_operators.md +170 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/stateless_operators.md +160 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/str_altair.md +77 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/str_api_python.md +294 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/str_batch.md +90 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/str_eng_parser.md +319 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/str_funcs.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/str_ha.md +300 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/str_intro.md +71 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/str_join_engine.md +136 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/str_monitor.md +119 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/str_operator.md +13 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/str_process.md +21 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/str_replay.md +18 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/str_replay_1.md +101 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/str_replay_n21.md +230 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/str_replay_n2n.md +96 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/str_table.md +276 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/streaming_computing_engine_in_cep.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/streaming_sql.md +128 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/sub_pub.md +213 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/time_bucket_engine.md +143 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/time_series_engine.md +638 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/timely_str_process.md +45 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/try_example1.md +411 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/stream/window_join_engine.md +233 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/sys_man/BatchJobManagement.md +123 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/sys_man/bak_resto.md +140 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/sys_man/cluster_async_replc.md +114 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/sys_man/cluster_manage.md +19 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/sys_man/multi_cluster_management.md +219 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/sys_man/om_intro.md +13 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/sys_man/perf_man.md +38 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/sys_man/secure_conn.md +70 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/sys_man/shutdown.md +49 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/third_party.md +11 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tools/backend_grafana.md +215 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tools/datax_reader.md +253 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tools/dbeaver.md +230 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tools/grafana.md +192 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tools/grafana_2.md +192 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tools/grafana_overview.md +24 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tools/power_bi.md +110 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tools/sqltools.md +116 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tools/superset.md +358 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/ACL_and_Security.md +1468 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/ACL_and_Security_2.md +1468 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/ARM_standalone_deploy.md +268 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/Array_Vector.md +1428 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/CSI_1000.md +199 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/CSI_1000_2.md +199 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/ClickHouse_to_DolphinDB.md +484 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/Compute_Node.md +663 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/DECIMAL.md +306 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/DECIMAL_Calculation_Characteristics.md +327 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/Data_Move_Rebalance.md +455 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/Debezium_Kafka_Oracle_sync.md +1756 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/Debezium_Kafka_PostgreSQL_sync.md +1197 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/Debezium_and_Kafka_data_sync.md +1471 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/DolphinDB_Explain.md +1073 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/DolphinDB_TopN.md +346 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/DolphinDB_VS_PythonFile_Storage.md +361 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/FxSwapValuation.md +190 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/IV_Greeks_Calculation_for_ETF_Options_Using_JIT.md +542 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/ImportTLData_toturial.md +563 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/Iot_intelligent_O&M.md +495 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/LoadDataForPoc.md +444 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/MVO.md +565 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/Migrate_data_from_InfluxDB_to_DolphinDB.md +318 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/Migrate_data_from_Redshift_to_DolphinDB.md +255 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/MySQL_to_DolphinDB.md +361 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/OHLC.md +339 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/OHLC_2.md +339 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/OceanBase_to_DolphinDB.md +381 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/Oracle_to_DolphinDB.md +528 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/Practical_Factor_Analysis_Modeling.md +503 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/Python_Celery.md +502 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/Python_HDF5_vs_DolphinDB.md +351 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/SQLServer_to_DolphinDB.md +395 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/Startup.md +151 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/StreamEngineParser.md +216 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/Virbration_Monitor_Fault_Diagnose.md +219 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/about_tutorials.md +17 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/add_Column.md +152 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/amd_best_prac.md +468 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/api_performance.md +280 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/appendices_market_replay_bp.md +672 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/arrow_plugin_usage.md +315 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/async_replication.md +333 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/backtest_introduction_usage.md +697 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/backtest_volatility_timing_vertical_spread.md +790 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/backtesting_using_MatchingEngineSimulator.md +371 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/backup-restore-new.md +406 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/backup_restore_before_208.md +363 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/behavioral_profiling_of_driving_habits.md +235 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/best_practice_for_factor_calculation.md +1030 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/best_practice_for_mdl.md +258 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/best_practice_for_storage_compute_separation.md +476 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/best_practices_for_log_monitoring.md +1006 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/best_practices_for_multi_factor.md +465 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/best_practices_for_partitioned_storage.md +1182 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/best_price_selection.md +300 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/brinson.md +249 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/cachedtable.md +95 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/campisi.md +322 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/clear_cache.md +568 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/cloud_deployment_with_terraform.md +636 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/cluster_monitor.md +1029 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/cluster_scaleout_perf_test.md +256 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/cross_environment_synchronization.md +268 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/csap.md +466 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/cta.md +276 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/cta_strategy_implementation_and_backtesting.md +950 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/curve_surface_builder.md +639 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/daily_stock_portfolio_backtest.md +223 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/dashboard_tutorial.md +1664 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/data_ETL.md +259 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/data_import_details.md +450 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/data_interface_for_redash.md +91 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/data_replay.md +241 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/data_sync_among_clusters.md +238 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/database.md +617 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/database_and_table_creation_details.md +590 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/database_and_table_creation_wizard.md +204 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/datax_writer.md +378 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/ddb_airflow.md +821 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/ddb_comparison_rules_of_time_types.md +373 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/ddb_sql_cases.md +1216 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/ddb_str_app_iot.md +202 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/ddb_str_app_iot_2.md +202 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/ddb_telegraf_grafana.md +570 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/debezium_kafka_real_time_synchronization_of_oracle_11g_data.md +891 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/displaying_the_dolphindb_k-line_with_klinechart.md +380 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/docker-compose_high_cluster.md +370 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/docker_single_deployment.md +462 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/dolphindb_tensor_libtorch_tutorial.md +285 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/dolphindb_update.md +587 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/dolphinscheduler_integration.md +700 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/e6_97_a0_e6_a0_87_e9_a2_9810.md +9 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/earthquake_prediction_ddb_ml.md +416 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/earthquake_prediction_ddb_ml_2.md +416 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/edge_to_cloud.md +341 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/effective-log-storage-and-retrieval.md +443 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/efficient_power_trading_solutions.md +264 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/empyrical.md +425 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/exchdata_exchange_historical_stock_data_auto_import_module_tutorial.md +557 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/factor_attribution_analysis.md +224 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/factor_evaluation_framework.md +650 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/faultAnalysis.md +270 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/financial_mock_data_generation_module.md +984 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/forecast_taxi_trip_dura.md +340 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/forecast_taxi_trip_dura_2.md +340 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/func_progr_cases.md +1177 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/function_mapping_py.md +298 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/fund_factor_contrasted_by_py.md +703 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/futures_minute_frequency_cta_strategy_backtest_example.md +295 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/general_computing.md +249 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/generate_large_scale_statistics_with_summary.md +186 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/getting_started_with_cep_engine.md +601 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/gplearn.md +175 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/gray_scale_upgrade_ha.md +191 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/guide_to_obtaining_stack_traces.md +185 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/haProxy_best_practices.md +387 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/haStreaming.md +205 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/ha_cluster_deployment.md +1150 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/ha_mvcc_table.md +192 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/ha_mvcc_table_guide.md +399 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/hf_factor_streaming.md +532 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/hf_factor_streaming_2.md +532 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/hf_to_lf_factor.md +995 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/high_freq_data_storage_and_analysis.md +427 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/how_to_handle_crash.md +281 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/httpclient_msg_case.md +820 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/hybrid_programming_paradigms.md +780 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/in_memory_table.md +695 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/insight_plugin.md +358 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/insight_plugin_orderbook_engine_application.md +822 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/instrument_and_mktdata.md +478 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/interface_development.md +585 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/iot_anomaly_detection.md +112 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/iot_anomaly_detection_2.md +112 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/iot_demo.md +162 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/iot_demo_2.md +162 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/iot_examples.md +1518 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/iot_multisource_fusion_query.md +239 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/iot_query_case.md +187 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/jit.md +700 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/job_management_tutorial.md +214 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/job_management_tutorial_2.md +214 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/k.md +1264 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/k8s_deployment.md +432 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/k8s_deployment_in_AWS.md +390 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/k8s_deployment_in_Aliyun.md +297 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/k_line_calculation%20.md +656 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/kafka_mqtt.md +267 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/kdb_to_dolphindb.md +556 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/knn_iot.md +523 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/knn_iot_2.md +523 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/l2_snapshot_factor_calc.md +608 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/l2_snapshot_factor_calc_2.md +608 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/l2_stk_data_proc.md +599 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/l2_stk_data_proc_2.md +599 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/log_analysis_tool_user_manual.md +562 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/log_searcher.md +531 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/machine_learning.md +346 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/macro_var_based_metaprogramming.md +396 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/market_condition_adjustments.md +348 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/matching_engine_simulator.md +1071 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/matrix.md +1650 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/memory_management.md +467 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/meta_programming.md +562 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/metacode_derived_features.md +476 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/metacode_derived_features_2.md +476 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/migrate_data_from_Postgre_and_Greenplum_to_DolphinDB.md +431 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/ml_volatility.md +361 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/ml_volatility_2.md +361 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/module_code_versioning_and_rights_management.md +326 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/module_development_guide.md +174 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/module_doc_writing_guide.md +44 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/module_testing_guide.md +134 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/monte_carlo_simulation.md +641 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/multi_asset_backtest.md +442 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/multi_factor_risk_model.md +1413 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/multi_machine_cluster_deployment.md +884 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/new_users_finance.md +3738 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/nginx_dolphindb.md +540 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/node_red_tutorial_iot.md +358 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/node_startup_exception.md +544 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/node_startup_process_and_questions.md +706 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/non-standard_permission_management.md +367 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/oauth.md +66 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/oltp_in-memory_storage_engine_non-embedded_version_tutorials.md +266 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/oom_settlement.md +246 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/oom_settlement_2.md +246 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/orca_finance.md +596 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/orca_finance_position.md +659 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/orderBookSnapshotEngine.md +843 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/order_splitting_with_cep.md +1270 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/order_splitting_with_cep_advanced.md +2832 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/panel_data.md +731 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/partitioned_in_memory_table.md +478 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/perf_opti_glibc.md +181 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/pickle_comparison.md +281 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/pip_ddb.md +205 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/prep_linux_for_deploy.md +635 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/pricing_functions.md +1532 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/probabilistic_and_statistical_analysis.md +1231 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/prometheus_and_ruleEngine_integration.md +554 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/promethues2.md +223 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/public_fund_basic_analysis.md +618 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/quant_finance_examples.md +740 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/random_vibr_sig_analysis.md +573 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/random_vibr_sig_analysis_2.md +573 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/reactive_state_engine.md +417 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/redis_plugin_tutorial.md +247 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/redoLog_cacheEngine.md +162 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/rt_stk_price_inc_calc.md +363 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/rt_stk_price_inc_calc_2.md +363 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/scale_out_cluster.md +254 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/scheduledJob.md +401 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/scheduledJob_2.md +401 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/service_deployment_and_migration.md +550 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/shark_gplearn_application.md +1293 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/shark_graph.md +411 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/single_machine_cluster_deploy.md +769 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/socp_usage_case.md +446 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/soft_delete.md +179 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/sql_performance_optimization_wap_di_rv.md +365 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/standalone_server.md +436 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/stateful_stream_operators.md +284 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/std_sql_ddb.md +893 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/stock_backtest.md +797 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/stock_market_replay.md +466 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/stock_market_replay_2.md +466 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/stockdata_csv_import_demo.md +168 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/str_comp_fin_quant.md +1407 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/str_comp_fin_quant_2.md +1407 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/stream_computing_in_futures_trading.md +865 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/stream_processing_volatility_fitting.md +308 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/streaming-real-time-correlation-processing.md +481 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/streaming-real-time-correlation-processing_2.md +481 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/streaming_IOPV.md +298 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/streaming_IOPV_2.md +298 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/streaming_auto_sub.md +238 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/streaming_auto_sub_2.md +238 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/streaming_capital_flow_daily.md +429 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/streaming_capital_flow_daily_2.md +429 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/streaming_capital_flow_order_by_order.md +483 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/streaming_capital_flow_order_by_order_2.md +483 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/streaming_engine_anomaly_alerts.md +250 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/streaming_engine_anomaly_alerts_2.md +250 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/streaming_timer.md +277 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/streaming_tutorial.md +868 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/textdb.md +387 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/the_ten_most_overlooked_details_of_programming.md +433 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/thread_intro.md +260 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/thread_intro_2.md +260 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/threading_model.md +223 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/timezone.md +556 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/tsdb_engine.md +132 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/tsdb_explained.md +668 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/tu_modules.md +313 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/udaf.md +155 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/unit_testing.md +438 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/usage_guidelines.md +631 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/user_level_resource_tracking.md +311 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/vanna.md +402 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/volatility_prediction.md +501 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/waveform_data_storage.md +701 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/waveform_data_storage_2.md +701 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/web_chart_integration.md +229 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/window_cal.md +1026 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/xtp.md +403 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/official/tutorials/zabbix_cluster_monitoring.md +454 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/project-schema-protocol.md +71 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/{pitfalls-and-best-practices.md → review-rules/anti-patterns.md} +6 -3
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/review-rules/change-checklist.md +65 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/review-rules/lethal-violations.md +32 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/review-rules/perf-baselines.md +77 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/url-manifest.json +13932 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/scripts/__pycache__/scrape_docs.cpython-311.pyc +0 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/scripts/build_index.py +210 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/scripts/check_freshness.py +57 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/scripts/refresh_docs.py +36 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/scripts/scrape_docs.py +293 -0
- package/templates/claude-global/skills//350/277/220/347/273/264/345/217/221/345/270/203/dwy-deploy-audit/scripts/check_services.sh +22 -5
- package/templates/claude-global/skills//350/277/220/347/273/264/345/217/221/345/270/203/dwy-publish/SKILL.md +5 -3
- package/templates/claude-global/skills//350/277/220/347/273/264/345/217/221/345/270/203/dwy-semver/SKILL.md +132 -0
- package/templates/claude-global/skills//350/277/220/347/273/264/345/217/221/345/270/203/dwy-semver/references/semver-spec.md +70 -0
- package/templates/claude-global/skills//350/277/220/347/273/264/345/217/221/345/270/203/dwy-semver/scripts/bump.py +137 -0
- package/templates/codex-global/hooks/Git/pre-git-commit-sensitive-check.sh +63 -0
- package/templates/codex-global/hooks.json +16 -0
- package/templates/claude-global/skills//345/256/211/345/205/250/dwy-pentest/scripts/lib/__pycache__/__init__.cpython-311.pyc +0 -0
- package/templates/claude-global/skills//345/256/211/345/205/250/dwy-pentest/scripts/lib/__pycache__/config.cpython-311.pyc +0 -0
- package/templates/claude-global/skills//345/256/211/345/205/250/dwy-pentest/scripts/lib/__pycache__/executor.cpython-311.pyc +0 -0
- package/templates/claude-global/skills//345/256/211/345/205/250/dwy-pentest/scripts/lib/__pycache__/severity.cpython-311.pyc +0 -0
- package/templates/claude-global/skills//345/256/211/345/205/250/dwy-pentest/scripts/lib/__pycache__/validator.cpython-311.pyc +0 -0
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/create-database-table.md +0 -219
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/crud-operations.md +0 -281
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/data-import.md +0 -271
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/docker-deployment.md +0 -63
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/performance-tuning.md +0 -223
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/python-api.md +0 -306
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/setup-and-connection.md +0 -143
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/sources.md +0 -46
- package/templates/claude-global/skills//346/225/260/346/215/256/345/272/223/dwy-dolphindb/references/sql-batch-compute.md +0 -206
- package/templates/claude-global/skills//350/277/220/347/273/264/345/217/221/345/270/203/dwy-mirror-source/scripts/__pycache__/check_mirrors.cpython-313.pyc +0 -0
|
@@ -0,0 +1,3738 @@
|
|
|
1
|
+
---
|
|
2
|
+
source_url: https://docs.dolphindb.cn/zh/tutorials/new_users_finance.html
|
|
3
|
+
fetched_at: 2026-05-19T09:47:57Z
|
|
4
|
+
category: tutorials
|
|
5
|
+
title: 新用户入门指南(金融篇)
|
|
6
|
+
sha1: 925a8bbb9ec68d35f3622aa19fafb58c7eec4612
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# 新用户入门指南(金融篇)
|
|
10
|
+
|
|
11
|
+
## 1. DolphinDB 在金融场景下的应用
|
|
12
|
+
|
|
13
|
+
金融行业因其业务的多样性和复杂性,每日产生包括交易记录、市场数据、客户信息等在内的海量数据。随着交易员对策略和数据分析需求的不断增长,数据的存储和分析对交易系统提出了极高的要求,尤其是在需要极低延时和极速响应的高频数据计算和分析方面。然而,传统数据库和硬件升级方案在成本、拓展性、性能和可靠性方面已难以满足这些日益增长的需求。幸运的是,近年来大容量内存、高速网络以及分布式集群架构等技术的发展,为金融行业提供了新的数据存储和分析解决方案。这些技术不仅降低了成本,还提高了系统的拓展性、性能和可靠性,从而更好地适应金融行业对大数据管理的需求。
|
|
14
|
+
|
|
15
|
+
在此背景下,DolphinDB,一款高性能时序数据库兼实时计算平台应运而生。DolphinDB
|
|
16
|
+
集成了分布式存储、分布式计算、时序分析、高性能计算、流式处理等多项技术于一体,可以很好地支持复杂的时序分析与实时流处理场景,为之提供高性能、低延时、海量存储的一体化解决方案。
|
|
17
|
+
|
|
18
|
+
目前 DolphinDB
|
|
19
|
+
在金融领域已签约银行、券商、公募、私募、资管、理财等领域的头部机构,在行情中心、数据中心、因子开发、投研、交易监控等场景提供了众多成熟的解决方案,如:
|
|
20
|
+
|
|
21
|
+
- 数据存储:实时数仓、[实时行情存储](best_practices_for_partitioned_storage.html)、[中高频因子存储](best_practices_for_multi_factor.html)
|
|
22
|
+
- 数据处理:[K 线合成](k.html)、[订单簿合成](insight_plugin_orderbook_engine_application.html)(任意频率、衍生指标、自定义指标)
|
|
23
|
+
- 因子挖掘:[因子存储](best_practices_for_multi_factor.html)、[流批一体因子计算](l2_snapshot_factor_calc.html)(提供了内置的千余指标函数以及 TA-lib,Alpha101 等因子库)
|
|
24
|
+
- 策略回测:[行情回放](appendices_market_replay_bp.html)、[模拟订单撮合](matching_engine_simulator.html)、[投资组合优化](MVO.html)、[Alphalens
|
|
25
|
+
回测框架](Practical_Factor_Analysis_Modeling.html)
|
|
26
|
+
- 风控和绩效归因:[多因子模型](multi_factor_risk_model.html)、[Campisi](campisi.html) 和 [Brinson](brinson.html) 绩效归因模型
|
|
27
|
+
- 实时计算:[实时高频因子计算](hf_factor_streaming.html)、[实时计算涨幅](rt_stk_price_inc_calc.html#%E5%AE%9E%E6%97%B6%E8%AE%A1%E7%AE%97%E6%B6%A8%E5%B9%85%E6%A6%9C)、[实时计算资金流](streaming_capital_flow_daily.html)、[实时选取外汇行情最优价源](best_price_selection.html)
|
|
28
|
+
- 机器学习:[XGBoost
|
|
29
|
+
插件](../plugins/xgboost/xgboost.html)、[Shark GPLearn](gplearn.html)(GPU 加速因子挖掘)、[AI DataLoader](https://docs.dolphindb.cn/zh/dataloaderdoc/ai_dataloader_ml.html) (便捷的
|
|
30
|
+
PyTorch 模型训练数据导入工具)、[LibTorch](../plugins/libtorch/libtorch.html)
|
|
31
|
+
|
|
32
|
+
## 2. 教程阅读说明
|
|
33
|
+
|
|
34
|
+
本教程旨在为从事金融行业的新用户进行入门学习上的指引,并为其后续工程上的使用和进阶学习打下基础。通过本入门教程的学习,可以基本掌握如何利用 DolphinDB
|
|
35
|
+
进行建库建表、数据导入与清洗、脚本编程、SQL 基础的库表操作、流计算框架构建、并发任务调度等工程中基础且必不可少的操作。
|
|
36
|
+
|
|
37
|
+
本章为阅读教程前的指导章节,包含本教程的阅读指引、本教程涉及的数据下载以及快速上手的指导。
|
|
38
|
+
|
|
39
|
+
### 2.1 安装部署指导
|
|
40
|
+
|
|
41
|
+
阅读本教程前请确保 DolphinDB 已经下载(下载页面:[产品 - DolphinDB](https://dolphindb.cn/product#downloads-top) )并部署完成(部署教程:[部署](../deploy/deploy_intro.html) )。
|
|
42
|
+
|
|
43
|
+
注:
|
|
44
|
+
|
|
45
|
+
Linux 版本比 Windows 版本更稳定、更容易定位问题,且兼容更多插件。对于环境为 Windows 系统的个人用户,推荐用户通过 WSL
|
|
46
|
+
进行部署。
|
|
47
|
+
|
|
48
|
+
对于仅需要测试 DolphinDB 功能的用例,下载 Windows 版本能够满足需求。然而,若计划将DolphinDB 用于生产环境,建议选择
|
|
49
|
+
Linux 平台进行部署。
|
|
50
|
+
|
|
51
|
+
### 2.2 教程环境和数据源说明
|
|
52
|
+
|
|
53
|
+
**实验环境说明**
|
|
54
|
+
|
|
55
|
+
本教程的实验环境如下:
|
|
56
|
+
|
|
57
|
+
- server 版本: 3.00.1.2 2024.07.30 LINUX x86\_64
|
|
58
|
+
- 部署方式:单节点 single mode
|
|
59
|
+
|
|
60
|
+
(为确保后续脚本能正常执行,建议用户和本实验环境保持一致)
|
|
61
|
+
|
|
62
|
+
**社区版单节点部署示例(Linux)**
|
|
63
|
+
|
|
64
|
+
注:
|
|
65
|
+
|
|
66
|
+
社区版: DolphinDB 对所有用户免费下载的一个版本,与付费版本的区别在于,社区版资源受到约束:最多 2 节点(数据节点/计算节点),每节点可用
|
|
67
|
+
2CPU 核、8GB 内存。
|
|
68
|
+
|
|
69
|
+
单节点:指在物理机或虚拟机上运行单个 DolphinDB server
|
|
70
|
+
实例(进程)。这种部署方式通常用于开发、测试和学习目的,因为它简化了环境配置,降低了资源需求。
|
|
71
|
+
|
|
72
|
+
在[本页面](https://dolphindb.cn/product#downloads-top)选择下载的版本:
|
|
73
|
+
|
|
74
|
+

|
|
75
|
+
|
|
76
|
+
下载后,解压 zip 包,并进入 server 目录:
|
|
77
|
+
|
|
78
|
+
```dolphindb
|
|
79
|
+
unzip DolphinDB_Linux64_V3.00.1.2.zip -d <YOUR_PATH>
|
|
80
|
+
cd <YOUR_PATH>/server
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+

|
|
84
|
+
|
|
85
|
+
server 目录中,dolphindb 为 server 可执行文件,请确保该文件有执行权限。
|
|
86
|
+
|
|
87
|
+
```dolphindb
|
|
88
|
+
chmod +x dolphindb
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
dolphindb.cfg 为数据库配置文件,用户可以通过添加或修改配置项,对数据库的日志、内存、性能、网络等方面进行[配置](../db_distr_comp/cfg/function_configuration.html)。启动前,请配置
|
|
92
|
+
*localSite* 中端口号为空闲端口(默认是 8848)。
|
|
93
|
+
|
|
94
|
+

|
|
95
|
+
|
|
96
|
+
参数配置示例:
|
|
97
|
+
|
|
98
|
+
- 例1:修改数据存储路径,需要在配置文件中添加 *volumes*配置项(以配置多个磁盘为例):
|
|
99
|
+
|
|
100
|
+
```dolphindb
|
|
101
|
+
volumes=/hdd/hdd1/volumes, /hdd/hdd2/volumes
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
注:
|
|
105
|
+
|
|
106
|
+
如果以单机集群方式进行部署,在 cluster.cfg 配置文件中配置 volumes 时,需要确保不同节点的存储路径不会重叠,一个简单的方式是使用宏变量
|
|
107
|
+
<ALIAS>,例如`volumes=/hdd/hdd1/volumes/<ALIAS>,
|
|
108
|
+
/hdd/hdd2/volumes/<ALIAS>`;或者可以通过“dnode1.volumes=`/hdd/hdd1/volumes/dnode1`”
|
|
109
|
+
的方式进行配置,其中 dnode1 是节点别名,在 cluster.nodes 文件中配置。
|
|
110
|
+
|
|
111
|
+
- 例2:需要开启流数据持久化功能,需要在配置文件中添加 *persistenceDir*配置项:
|
|
112
|
+
|
|
113
|
+
```dolphindb
|
|
114
|
+
persistenceDir=/home/DolphinDB/Data/Persistence
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
配置完毕后,启动 server:
|
|
118
|
+
|
|
119
|
+
- 前台启动
|
|
120
|
+
|
|
121
|
+
```dolphindb
|
|
122
|
+
./dolphindb
|
|
123
|
+
```
|
|
124
|
+
- 后台启动
|
|
125
|
+
|
|
126
|
+
```dolphindb
|
|
127
|
+
sh startSingle.sh
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
HINT:windows
|
|
131
|
+
版本后台启动脚本为对应的 vbs 文件。
|
|
132
|
+
|
|
133
|
+
若 server 无法启动,请检查 dolphindb.log 日志中是否有异常信息,并参考文档 [节点启动异常](node_startup_exception.html#%E8%8A%82%E7%82%B9%E5%90%AF%E5%8A%A8%E5%BC%82%E5%B8%B8) 进排查。
|
|
134
|
+
|
|
135
|
+
启动成功后,用户可以在 web 端输入 <ip:port>,如 localhost:8848 打开 Web 管理器。
|
|
136
|
+
|
|
137
|
+

|
|
138
|
+
|
|
139
|
+
部分系统运维函数和库表创建对用户的权限有一定要求。初始条件下,默认用户为 guest,社区用户可以点击右上角的用户头像,选择 Log in 选项,然后通过
|
|
140
|
+
admin 账号进行登录:
|
|
141
|
+
|
|
142
|
+

|
|
143
|
+
|
|
144
|
+
登录后,点击左侧的 Shell 模块即可执行简单的代码进行测试。
|
|
145
|
+
|
|
146
|
+
如果要构建项目,用户可以通过 VSCode 或者 GUI 客户端连接 server 执行脚本。以 VSCode 为例,下载 DolphinDB
|
|
147
|
+
拓展后,点击左侧的数据库图标,在 setting.json 中必须修改配置参数 “url” 为 “ws://<连接节点 ip>:<连接节点
|
|
148
|
+
port>”,其余参数均为可选配置:
|
|
149
|
+
|
|
150
|
+
配置完成后,可以在任意用户的工作目录下,创建任意一个以 “.dos” 为尾缀的文件,编写 DolphinDB
|
|
151
|
+
脚本。脚本执行有两种方式:(1)点击右上角的执行按钮执行;(2)按快捷键 `ctrl`+`E`
|
|
152
|
+
执行。
|
|
153
|
+
|
|
154
|
+

|
|
155
|
+
|
|
156
|
+
**数据说明**
|
|
157
|
+
|
|
158
|
+
本教程提供的数据均为模拟数据,范围包含: Level2 的逐笔数据、Level2 快照数据。
|
|
159
|
+
|
|
160
|
+
参考:[金融
|
|
161
|
+
Mock 数据生成模块](financial_mock_data_generation_module.html)
|
|
162
|
+
|
|
163
|
+
本教程通过模块 MockData 模拟数据,用户下载附录的 [MockData.dos](#topic_ctd_tly_5dc)
|
|
164
|
+
文件后,需将该文件置于 <homeDir>/modules/ 路径目录下,其中 <homeDir> 默认是 server 主目录(由配置项
|
|
165
|
+
homeDir 指定),用户也可以在线调用`getHomeDir()`函数获取该路径。
|
|
166
|
+
|
|
167
|
+

|
|
168
|
+
|
|
169
|
+
模块安装后,在客户端中通过脚本 `use MockData` 导入该模块后,即可调用模块内部的函数产生模拟数据。
|
|
170
|
+
|
|
171
|
+
**教程代码说明**
|
|
172
|
+
|
|
173
|
+
1. 在执行代码时,请确保代码中的变量 <YOUR\_PATH> 已经替换成您自己的路径(建议使用绝对路径),如
|
|
174
|
+
“/home/usr/data”。请注意,如文档中无特殊说明,该路径必须是 DolphinDB server
|
|
175
|
+
所在物理机的路径而不是客户端的路径。
|
|
176
|
+
2. 部分代码依赖上文创建的库表,测试脚本前请参考教程说明,预先建库建表。
|
|
177
|
+
|
|
178
|
+
### 2.3 如何快速上手
|
|
179
|
+
|
|
180
|
+
**快速配置数据库**
|
|
181
|
+
|
|
182
|
+
DolphinDB
|
|
183
|
+
数据库的内存、线程、网络、文件、流数据等等资源都可以通过**离线的配置项文件**或**在线函数**进行配置和修改。下面简述两种方式的具体操作:
|
|
184
|
+
|
|
185
|
+
(1)配置文件:下载 DolphinDB 后,打开安装包中的配置项文件,添加或者修改相关配置信息即可。配置文件路径如下:
|
|
186
|
+
|
|
187
|
+
表 2-1 不同部署场景下的配置项路径说明
|
|
188
|
+
|
|
189
|
+
| **部署** | **默认配置目录** | **相关配置项** |
|
|
190
|
+
| --- | --- | --- |
|
|
191
|
+
| 单节点环境 | *<安装目录>/server/dolphindb.cfg* | config |
|
|
192
|
+
| 集群环境 | *<安装目录>/server/clusterDemo/config/* - 数据节点、计算节点:*cluster.cfg* - 控制节点:*controller.cfg* - 代理节点:*agent.cfg* - 节点网络信息配置:*cluser.nodes* | config nodesFile clusterConfig |
|
|
193
|
+
|
|
194
|
+
注:
|
|
195
|
+
|
|
196
|
+
更多参数说明请参考 [参数配置](../db_distr_comp/cfg/para_cfg.html)。**注意:**增加或修改配置后,重新启动 DolphinDB 服务,即可生效;用户通过在线调用
|
|
197
|
+
`getConfig` 函数获取配置项的值。
|
|
198
|
+
|
|
199
|
+
(2)在线函数:可以通过 [setDynamicConfig](../funcs/s/setdynamicconfig.html)
|
|
200
|
+
函数在线动态修改部分配置项的值,但注意在线动态修改的配置重启后会失效,若需要永久化需在配置文件进行修改。
|
|
201
|
+
|
|
202
|
+
**快速开始编写 DolphinScript**
|
|
203
|
+
|
|
204
|
+
DolphinDB 编程对以下用户天然友好:
|
|
205
|
+
|
|
206
|
+
- 有 SQL 编程经验的用户:DolphinDB SQL 语法基本兼容 SQL-92 标准。兼容性可参考 [SQL 标准化](std_sql_ddb.html)
|
|
207
|
+
。
|
|
208
|
+
|
|
209
|
+
```dolphindb
|
|
210
|
+
t1 = table(2024.01.01 + (0 31 60 91 121) as date, 1.2 7.8 4.6 5.1 9.5 as value)
|
|
211
|
+
t2 = table(2024.02.01 + (0 15 90) as date, 1..3 as qty)
|
|
212
|
+
SELECT * FROM t1 LEFT JOIN t2 ON t1.date = t2.date
|
|
213
|
+
```
|
|
214
|
+
- 有 Python 编程经验的用户:DolphinDB 和 Python 一样都是动态类型语言,即声明变量无需指定变量类型。此外,DolphinDB
|
|
215
|
+
在函数定义、函数调用、传参方式上都与传统编程语言类似。
|
|
216
|
+
|
|
217
|
+
```dolphindb
|
|
218
|
+
def f(a, mutable b, c=1){
|
|
219
|
+
if(a < b){
|
|
220
|
+
b*=c
|
|
221
|
+
}else{
|
|
222
|
+
b*=-c
|
|
223
|
+
}
|
|
224
|
+
return b
|
|
225
|
+
}
|
|
226
|
+
f(6, 10)
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
对有编程经验的用户而言,上手写脚本并不会成为学习瓶颈,真正有难度的是如何编写出高性能且简洁的脚本。尤其在金融数据分析领域,对计算响应延时往往要求很高,高性能是用户关注的核心点。
|
|
230
|
+
|
|
231
|
+
为了提高脚本性能,用户需要牢牢把握两个核心的思维方式:向量式和函数式,这两个思维是编写出高效简洁脚本的关键。
|
|
232
|
+
|
|
233
|
+
- 向量式编程,简单来说就是允许程序员以数学向量(即一组数值)作为操作的基本单位,而不是单个的标量数值。在向量式编程中,操作和函数可以直接应用于整个数组或矩阵,而不需要使用显式的循环结构。
|
|
234
|
+
|
|
235
|
+
该编程方式主要得益于
|
|
236
|
+
DolphinDB 在指令集上的优化,例如二元运算时,将 1 对 1的两两元素运算拓展到 n 对 n
|
|
237
|
+
的并发计算;或对单个向量计算时,在算法上通过增量计算优化函数的性能。使用经过向量化优化的函数计算,其性能远远高于传统遍历的方式。
|
|
238
|
+
|
|
239
|
+
例.
|
|
240
|
+
比较循环遍历和向量化计算两个向量和的性能开销。
|
|
241
|
+
|
|
242
|
+
```dolphindb
|
|
243
|
+
n = 10000
|
|
244
|
+
a = rand(10.0, n)
|
|
245
|
+
b = rand(10.0, n)
|
|
246
|
+
c = array(DOUBLE, n)
|
|
247
|
+
timer for(i in 0:n){
|
|
248
|
+
c[i]=a[i]+b[i]
|
|
249
|
+
} // Time elapsed: 22.021 ms
|
|
250
|
+
timer c=a+b // Time elapsed: 0.069 ms
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
DolphinDB
|
|
254
|
+
绝大部分函数均支持向量计算,内部通过向量化的方式优化了函数的性能,因此要运用好向量化的思维,就要灵活的掌握各种函数的应用。
|
|
255
|
+
- 函数式编程,一种以函数为中心的编程范式。函数式编程强调纯函数,即输入决定输出,不依赖外部状态且无副作用。由于没有副作用,多个线程和进程可以并发执行,同时代码方便调试且能够在不同环境进行复用;由于函数链式组合编写代码,代码也会更简洁、可读性也会更高。
|
|
256
|
+
|
|
257
|
+
例.
|
|
258
|
+
使用函数式编程的方式实现:计算两个内存表存在不同之处的所有行号。
|
|
259
|
+
|
|
260
|
+
```dolphindb
|
|
261
|
+
t1 = table(`A`B`C as id, 1000 2000 1000 as qty, 50.5 60.5 100.0 as price)
|
|
262
|
+
t2 = table(`A`B`C as id, 1000 2100 1000 as qty, 50.5 60.5 100.0 as price)
|
|
263
|
+
|
|
264
|
+
byRow(all, byColumn(eq, t1, t2)).not().at()
|
|
265
|
+
// 或使用高级函数模式符号替代
|
|
266
|
+
eq:V(t1, t2).all:H().not().at()
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
利用好函数式编程,可以编写出更简洁的脚本。其编程的关键点在于高阶函数、链式调用、纯函数。
|
|
270
|
+
|
|
271
|
+
为了更好领悟上述的编程特点和编程思想,下文将通过一个完整连贯的案例,一步步带领大家搭建一个基础的 DolphinDB 项目。
|
|
272
|
+
|
|
273
|
+
### 2.4 阅读指引
|
|
274
|
+
|
|
275
|
+
针对不同从业方向人群,本教程推荐的阅读指引如下:
|
|
276
|
+
|
|
277
|
+
- 数据平台开发与运维人员:主要阅读第 3~5 章,这些章节介绍了建库建表、数据导入、数据清洗和预处理等方面的内容。
|
|
278
|
+
- 阅读参考:[数据迁移方法](../db_distr_comp/db_oper/data_import_method.html)
|
|
279
|
+
[系统运维](../sys_man/om_intro.html)
|
|
280
|
+
[故障排查](../error_codes/troubleshooting.html) [数据库](../db_distr_comp/cfg/db_intro.html)
|
|
281
|
+
- 数据分析人员 :主要阅读第 5~7 章,这些章节介绍了 SQL 编程(聚合、时序等)、流计算框架(流订阅、引擎级联计算等)等方面的内容。
|
|
282
|
+
- 阅读参考:[函数分类](../funcs/funcs_by_topics.html#funcs_by_topics)
|
|
283
|
+
[Python 到
|
|
284
|
+
DolphinDB 的函数映射](function_mapping_py.html)
|
|
285
|
+
[编程语言](../progr/progr_intro.html)
|
|
286
|
+
[流数据](../stream/str_intro.html)
|
|
287
|
+
- 每个章节都提供了常见问题的解决引导和下一步阅读的指南,供用户参考。
|
|
288
|
+
|
|
289
|
+
对于初学者,入门 DolphinDB 时,可以优先在[金融场景案例](OHLC.html)中搜索是否有和自己场景类似的案例,进行阅读实操。在学习的过程如遇问题,建议优先在[用户手册](../about/ddb_intro.html)和 [ask
|
|
290
|
+
社区](https://ask.dolphindb.cn/)搜索相关问题,如无法解决可以通过社区、邮件等途径寻求[技术支持](../getstarted/chap1_getstarted.html#topic_ijv_rph_pcc)。
|
|
291
|
+
|
|
292
|
+
## 3. 创建数据库和数据表
|
|
293
|
+
|
|
294
|
+
为了满足海量数据存储和查询的需要,DolphinDB 将数据表按照分区划分成小粒度的数据块,分布式地存储在各个节点上;此外根据不同的应用场景,DolphinDB
|
|
295
|
+
开发设计了不同的存储引擎。因此,在建库建表时,比起传统的数据库,DolphinDB 需要额外设置更复杂的配置参数,例如分区方案、存储引擎等等。
|
|
296
|
+
|
|
297
|
+
为了循序渐进地进行理解和学习,本章将从分布式和分区设计开始讲解,然后以一个具体的建库建表案例进行分析,以帮助用户进行理解。
|
|
298
|
+
|
|
299
|
+
### 3.1 分布式架构与数据分区
|
|
300
|
+
|
|
301
|
+
**分布式**是 DolphinDB 实现海量数据存储、并行计算提速的关键架构。分布式架构对用户开放的“接口”叫做**分布式表**,在
|
|
302
|
+
DolphinDB 中指路径以 “dfs://” 开头的数据库下存储的表。
|
|
303
|
+
|
|
304
|
+
DolphinDB
|
|
305
|
+
的分布式是基于分布式文件系统实现的,是一个逻辑上的概念,而不是指物理上的多机存储。即使是单服务器单节点,也可以创建一个分布式表。分布式表的数据按 1
|
|
306
|
+
个或多个维度,在逻辑上分成很多个部分,每一个部分称之为**分区**。
|
|
307
|
+
|
|
308
|
+

|
|
309
|
+
|
|
310
|
+
为了保证数据的高可用性、可扩展性,提升系统的负载均衡,用户可以部署一个**分布式集群**。
|
|
311
|
+
|
|
312
|
+
在分布式集群中,**控制节点**负责集群的监控、元数据管理,多个控制节点(至少 3 个)可以构成一个 raft
|
|
313
|
+
组,以实现高可用集群部署。数据存储和计算的工作由集群中的**数据节点**和**[计算节点](Compute_Node.html)**负责,控制节点不参与此类工作。数据节点和计算节点既可以部署在同一台物理机,也可以部署在不同的物理机,每台物理机通过一个**代理节点**对其上部署的数据节点和计算节点进行管理。
|
|
314
|
+
|
|
315
|
+
数据节点负责数据存储,同时也支持内存计算,在分布式集群中,分区可以按照设定包含固定数量的副本,分散地存储在数据节点上;计算节点只支持计算,不支持存储,它主要用于一些复杂且开销较大的计算任务。
|
|
316
|
+
|
|
317
|
+
注:
|
|
318
|
+
|
|
319
|
+
对于单节点部署的 server 实例,它既是控制节点又是数据节点。
|
|
320
|
+
|
|
321
|
+
以一个 3 个数据节点的集群为例,数据按天值分区同时按股票代码哈希分区,双副本存储。集群中的数据存储架构如下图所示(最小的蓝色方块表示分区的一个副本):
|
|
322
|
+
|
|
323
|
+

|
|
324
|
+
|
|
325
|
+
分布式存储必然涉及到分布式的存储/查询/计算,因此 DolphinDB 数据库实现了事务对分布式的支持。DolphinDB 的分布式实现以 map-reduce
|
|
326
|
+
框架为核心。当用户发起分布式查询时,查询语句会下沉(map)到各个分区实现并行计算,最后汇总(merge)计算结果到查询发起节点,如有必要,还可以基于汇总结果做进一步计算(reduce)。
|
|
327
|
+
|
|
328
|
+

|
|
329
|
+
|
|
330
|
+
### 3.2 设置合理分区
|
|
331
|
+
|
|
332
|
+
数据分区主要发挥以下作用:
|
|
333
|
+
|
|
334
|
+
- 缩小查询范围:如果查询条件包含分区列,则可以通过剪枝操作,快速过滤掉不必要的分区查询,避免全表扫描带来的开销。
|
|
335
|
+
- 提高计算性能:将数据分散存储在不同的节点上,系统可以并行处理计算请求,提高数据处理速度。
|
|
336
|
+
- 提高可靠性和容错能力:通过数据复制和冗余存储,分布式系统可以在某些节点失败时继续运行,不会丢失数据,从而提高系统的可靠性。节点故障时,也可以从分区副本中恢复数据。
|
|
337
|
+
- 增强可扩展性:分布式存储系统可以添加更多的节点来存储数据分区,从而实现水平扩展,以应对数据量的增长。
|
|
338
|
+
|
|
339
|
+
分区粒度(即每个分区包含的数据量大小)会对查询性能造成影响,这里总结为:
|
|
340
|
+
|
|
341
|
+
- 分区粒度过大:单分区数据量大,查询时 IO 开销高。受到 license 内存限制,可能导致内存溢出、内存磁盘频繁切换等问题。
|
|
342
|
+
- 分区粒度过小:单分区数据量小,查询涉及分区多,查询子任务数量大,将造成节点间通讯成本增加。此外,由于控制节点存储分区元数据,分区过多,控制节点元数据信息爆炸,可能导致控制节点内存不足。最后,由于涉及的分区多,导致系统读写频繁,从而造成很多低效的磁盘访问(小文件读写),造成系统负荷过重。
|
|
343
|
+
|
|
344
|
+
用户建表时需要指定分区字段,系统将依据分区字段的值按照分区模式划分分区,分区模式由用户在建库时指定。下面结合图例对不同分区模式的机制进行说明,假设原始数据为:
|
|
345
|
+
|
|
346
|
+

|
|
347
|
+
|
|
348
|
+
- VALUE 分区:用户需要指定分区字段的部分值(以列表形式提供,如以日期分区,可以提供
|
|
349
|
+
2022.01.01..2022.01.31),数据依据分区字段值进行分区,一个值对应一个分区。
|
|
350
|
+
|
|
351
|
+
**注意:**官网下载的安装包中的配置项默认设置了
|
|
352
|
+
newValuePartitionPolicy=add,即支持写入不在值分区内的数据时,值分区也可以自动拓展。因此,用户在配置 VALUE
|
|
353
|
+
分区的模式时,可以只指定少量字段值,以避免元数据过多(例如用户设置了
|
|
354
|
+
2000.01.01..2030.01.01,会造成分区元数据很大)。
|
|
355
|
+
|
|
356
|
+

|
|
357
|
+
- HASH 分区:用户指定固定的 HASH 分区数,数据依据分区字段值调用哈希函数 [hashBucket](../funcs/h/hashBucket.html)
|
|
358
|
+
映射后的结果进行分区,每个哈希值对应一个分区。
|
|
359
|
+
- RANGE 分区:用户指定分区范围,数据依据分区字段值划分到对应的范围中,一个范围对应一个分区。范围分区不支持自动拓展,用户需要手动调用函数 [addRangePartitions](../funcs/a/addRangePartitions.html)。
|
|
360
|
+
- LIST 分区:用户指定以列表形式指定哪些值属于哪些。实践中,金融场景客户很少使用这种分区方式。
|
|
361
|
+
- COMPO 分区:将多个字段的不同的分区方案进行组合。
|
|
362
|
+
|
|
363
|
+
注:
|
|
364
|
+
|
|
365
|
+
参考阅读: [分区数据库设计和操作](database.html)
|
|
366
|
+
|
|
367
|
+
金融领域通常将时间字段作为分区字段,指定分区模式时,最常用的是 VALUE 和 RANGE 分区,如日 K 线数据按照年划分 RANGE 分区,分钟 K
|
|
368
|
+
线按照日划分 VALUE 分区等。但是部分场景下,仅依靠一层分区,仍无法控制分区在合理的范围,此时可以通过 COMPO
|
|
369
|
+
组合分区进行更细粒度的划分,例如逐笔数据按照日划分 VALUE 分区,同时按照股票代码 HASH 分区。 HASH
|
|
370
|
+
分区是灵活调整分区粒度的一个重要的方式。
|
|
371
|
+
|
|
372
|
+
调整分区粒度的方法:
|
|
373
|
+
|
|
374
|
+
- 降低分区粒度:(1)采用 COMPO 分区;(2)增加分区个数;(3)将 RANGE 分区改为 VALUE 分区。
|
|
375
|
+
- 增加分区粒度:(1)采用 RANGE 分区取代 VALUE 分区;(2)HASH 分区减小哈希映射数。
|
|
376
|
+
|
|
377
|
+
合理的分区大小推荐:
|
|
378
|
+
|
|
379
|
+
- OLAP 引擎:100MB - 300MB (压缩前)
|
|
380
|
+
- TSDB/PKEY 引擎:400MB - 1GB(压缩前)
|
|
381
|
+
|
|
382
|
+
选择合适的存储引擎:
|
|
383
|
+
|
|
384
|
+
分布式数据可选的存储引擎有 TSDB, OLAP 和 PKEY,其中 TSDB 和 OLAP
|
|
385
|
+
是较为基础的两个存储引擎。TSDB 引擎相较于 OLAP 引擎而言,底层设计更加复杂,详情可参考 [TSDB 存储引擎简介](tsdb_engine.html) 。从用户层面来说,最显著的功能特点就是 TSDB
|
|
386
|
+
除了分区机制外,还额外增加一层字段索引机制,因而更适用于大数据点查的场景。对于较小的数据量可以继续用 OLAP 存储甚至存储为无分区的维度表。如果对数据有主键约束的需求可以使用 PKEY 引擎进行存储。
|
|
387
|
+
|
|
388
|
+
常见的金融数据分区方案参见:[存储金融数据的分区方案最佳实践](best_practices_for_partitioned_storage.html)。此处摘选了一部分股票的分区方案供参考:
|
|
389
|
+
|
|
390
|
+
表 3-1 不同种类股票数据的分区方案示例
|
|
391
|
+
|
|
392
|
+
| **产品大类** | **数据集** | **存储引擎** | **分区方案** | **分区列** | **排序列** |
|
|
393
|
+
| --- | --- | --- | --- | --- | --- |
|
|
394
|
+
| 股票 | Level2 快照(沪深分表) | TSDB | 按天 VALUE 分区 + 按股票代码 HASH25 分区 | 交易日期 + 股票代码 | 股票代码 + 交易时间 |
|
|
395
|
+
| 股票 | Level1 快照(沪深分表) | TSDB | 按天 VALUE 分区 + 按股票代码 HASH25 分区 | 交易日期 + 股票代码 | 股票代码 + 交易时间 |
|
|
396
|
+
| 股票 | 逐笔委托(沪深分表) | TSDB | 按天 VALUE 分区 + 按股票代码 HASH25 分区 | 交易日期 + 股票代码 | 股票代码 + 交易时间 |
|
|
397
|
+
| 股票 | Level1 快照(沪深合并) | TSDB | 按天 VALUE 分区 + 按股票代码 HASH50 分区 | 交易日期 + 股票代码 | 交易所类型 + 股票代码 + 交易时间 |
|
|
398
|
+
| 股票 | 逐笔委托(沪深合并) | TSDB | 按天 VALUE 分区 + 按股票代码 HASH50 分区 | 交易日期 + 股票代码 | 交易所类型 + 股票代码 + 交易时间 |
|
|
399
|
+
| 股票 | 逐笔成交(沪深合并) | TSDB | 按天 VALUE 分区 + 按股票代码 HASH50 分区 | 交易日期 + 股票代码 | 交易所类型 + 股票代码 + 交易时间 |
|
|
400
|
+
| 股票 | 日 K 线 | OLAP | 按年 RANGE 分区 | 交易时间 | 无 |
|
|
401
|
+
| 股票 | 分钟 K 线 | OLAP | 按天 VALUE 分区 | 交易时间 | 无 |
|
|
402
|
+
|
|
403
|
+
注:
|
|
404
|
+
|
|
405
|
+
1. 分区方案在 DolphinDB
|
|
406
|
+
创建数据库时指定,指定后,该数据库下的表将以该方案划分数据。以一个具体的建库代码为例,`create database
|
|
407
|
+
"dfs://stock_lv2_snapshot" partitioned by
|
|
408
|
+
VALUE(2024.01.01..2024.01.02), HASH([SYMBOL, 50]),
|
|
409
|
+
engine='TSDB'`,其中 `partition by`
|
|
410
|
+
用于指定分区方案,即`VALUE(2024.01.01..2024.01.02), HASH([SYMBOL,
|
|
411
|
+
50])`,该方案表示的含义如下:
|
|
412
|
+
- 按天 VALUE 分区:属于同一天的数据都存储在同一个分区
|
|
413
|
+
- 按 SYMBOL 类型的字段(如股票代码)HASH 50 分区:对分区字段调用哈希函数 [hashbucket](../funcs/h/hashBucket.html),*buckets* 参数为 50,将数据映射到 0~49
|
|
414
|
+
中的一个键,属于同一个键的数据都存储在同一个分区。
|
|
415
|
+
- `engine` 用于指定存储引擎,本例中为 TSDB。
|
|
416
|
+
2. 排序列是 TSDB 引擎特有的一个参数(sortColumns),用于设置 TSDB 引擎的索引机制,OLAP 引擎无需指定排序列。
|
|
417
|
+
3. DolphinDB 的时间类型精度最粗到月,例如 2021.01M,因此对于按年分区,无法通过值分区实现,必须使用 RANGE
|
|
418
|
+
分区,参考代码:
|
|
419
|
+
|
|
420
|
+
```dolphindb
|
|
421
|
+
dataRange = 2020.01M + (0..10)*12
|
|
422
|
+
create database "dfs://year" partitioned by RANGE(dataRange)
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
### 3.3 建库建表
|
|
426
|
+
|
|
427
|
+
DolphinDB 可以通过函数建库建表,也可以使用 SQL 进行建库建表,本教程以 SQL 编程进行示例,相关参考文档 [create](../progr/sql/create.html)。
|
|
428
|
+
|
|
429
|
+
#### 3.3.1 快速创建一个数据库
|
|
430
|
+
|
|
431
|
+
以股票 Level2 快照(沪深合并)数据为例,创建一个数据库,参考金融数据分区方案最佳实践教程,分区方案如下:
|
|
432
|
+
|
|
433
|
+
表 3-2 沪深股票 Level2 快照数据分区方案
|
|
434
|
+
|
|
435
|
+
| **产品大类** | **数据集** | **存储引擎**'engine' | **分区方案**partitionType+partitionScheme |
|
|
436
|
+
| --- | --- | --- | --- |
|
|
437
|
+
| 股票 | Level2 快照(沪深合并) | TSDB | 按天分区 + 按股票代码 HASH50 分区 |
|
|
438
|
+
|
|
439
|
+
```dolphindb
|
|
440
|
+
// 环境清理:如果重复试验可执行此步,请确保自身环境内不存在同名数据库,否则会被删除
|
|
441
|
+
drop database if exists "dfs://stock_lv2_snapshot"
|
|
442
|
+
|
|
443
|
+
// 创建一个路径为 "dfs://stock_lv2_snapshot" 的数据库,按照日期值 + SYMBOL 哈希组合分区,存储引擎为 TSDB
|
|
444
|
+
create database "dfs://stock_lv2_snapshot" partitioned by VALUE(2024.01.03..2024.01.04), HASH([SYMBOL, 50]), engine='TSDB'
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
#### 3.3.2 分区方案确立规则(可跳过)
|
|
448
|
+
|
|
449
|
+
为了能够在更通用的场景确立分区方案,下面以模拟的快照数据为例进行演示。
|
|
450
|
+
|
|
451
|
+
**STEP1. 数据量估算**
|
|
452
|
+
|
|
453
|
+
假设一共需要存储 5000 只股票的快照数据。先模拟一天单只股票的数据,数据量为 4802
|
|
454
|
+
行。
|
|
455
|
+
|
|
456
|
+
```dolphindb
|
|
457
|
+
use MockData
|
|
458
|
+
t = stockSnapshot(tradeDate=2020.01.06, securityNumber=1)
|
|
459
|
+
exec count(*) from t
|
|
460
|
+
// output: 4802
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
为了估算整体的数据量大小,可以先估算单行数据的大小。下面给出两种单行数据量的估算方法。
|
|
464
|
+
|
|
465
|
+
**方法一:**根据表字段的存储的字节数估算。
|
|
466
|
+
|
|
467
|
+
通常而言,用户自己在存储数据时,都会维护一个字段信息表。这里为了方便大家理解,直接调用 schema
|
|
468
|
+
函数获取模拟数据的字段信息。
|
|
469
|
+
|
|
470
|
+
```dolphindb
|
|
471
|
+
// 调用 schema 函数获取表字段信息(字段名,类型)
|
|
472
|
+
s = schema(t).colDefs
|
|
473
|
+
|
|
474
|
+
/* output:
|
|
475
|
+
name typeString typeInt extra comment
|
|
476
|
+
------------------ ---------- ------- ----- -------
|
|
477
|
+
TradeDate DATE 6
|
|
478
|
+
TradeTime TIME 8
|
|
479
|
+
MDStreamID SYMBOL 17
|
|
480
|
+
Securityid SYMBOL 17
|
|
481
|
+
SecurityIDSource SYMBOL 17
|
|
482
|
+
TradingPhaseCode SYMBOL 17
|
|
483
|
+
ImageStatus INT 4
|
|
484
|
+
PreCloPrice DOUBLE 16
|
|
485
|
+
......
|
|
486
|
+
*/
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
下表在 schema 字段信息的基础上补充了字段含义说明和字节数的信息,字节数是对照表 [数据类型](../progr/data_types.html)
|
|
490
|
+
获取的,对于数组向量,这里的估算方式为:单行数据大小 = Σ字段类型对应字节数。
|
|
491
|
+
|
|
492
|
+
| | **字段含义** | **入库字段名** | **入库数据类型** | **字节数** |
|
|
493
|
+
| --- | --- | --- | --- | --- |
|
|
494
|
+
| 1 | 数据生成日期 | TradeDate | DATE | 4 |
|
|
495
|
+
| 2 | 数据生成时间 | TradeTime | TIME | 8 |
|
|
496
|
+
| 3 | 行情类别 | MDStreamID | SYMBOL | 4 |
|
|
497
|
+
| 4 | 证券代码 | SecurityID | SYMBOL | 4 |
|
|
498
|
+
| 5 | 证券代码源 | SecurityIDSource | SYMBOL | 4 |
|
|
499
|
+
| 6 | 交易阶段 | TradingPhaseCode | SYMBOL | 4 |
|
|
500
|
+
| 7 | 快照类型(全量/更新) | ImageStatus | INT | 4 |
|
|
501
|
+
| 8 | 昨日收盘价 | PreCloPrice | DOUBLE | 8 |
|
|
502
|
+
| 9 | 成交笔数 | NumTrades | LONG | 8 |
|
|
503
|
+
| 10 | 成交总量 | TotalVolumeTrade | LONG | 8 |
|
|
504
|
+
| 11 | 成交总金额 | TotalValueTrade | DOUBLE | 8 |
|
|
505
|
+
| 12 | 最近价 | LastPrice | DOUBLE | 8 |
|
|
506
|
+
| 13 | 开盘价 | OpenPrice | DOUBLE | 8 |
|
|
507
|
+
| 14 | 最高价 | HighPrice | DOUBLE | 8 |
|
|
508
|
+
| 15 | 最低价 | LowPrice | DOUBLE | 8 |
|
|
509
|
+
| 16 | 今收盘价 | ClosePrice | DOUBLE | 8 |
|
|
510
|
+
| 17 | 升跌1(最新价-昨收价) | DifPrice1 | DOUBLE | 8 |
|
|
511
|
+
| 18 | 升跌2(最新价-上一最新价) | DifPrice2 | DOUBLE | 8 |
|
|
512
|
+
| 19 | 股票市盈率1 | PE1 | DOUBLE | 8 |
|
|
513
|
+
| 20 | 股票市盈率2 | PE2 | DOUBLE | 8 |
|
|
514
|
+
| 21 | 基金T-1净值 | PreCloseIOPV | DOUBLE | 8 |
|
|
515
|
+
| 22 | 基金实时参考净值 | IOPV | DOUBLE | 8 |
|
|
516
|
+
| 23 | 委托买入总量 | TotalBidQty | LONG | 8 |
|
|
517
|
+
| 24 | 加权平均买入价格 | WeightedAvgBidPx | DOUBLE | 8 |
|
|
518
|
+
| 25 | 债券加权平均委买价格 | AltWAvgBidPri | DOUBLE | 8 |
|
|
519
|
+
| 26 | 委托卖出总量 | TotalOfferQty | LONG | 8 |
|
|
520
|
+
| 27 | 加权平均卖出价格 | WeightedAvgOfferPx | DOUBLE | 8 |
|
|
521
|
+
| 28 | 债券加权平均委卖价格 | AltWAvgAskPri | DOUBLE | 8 |
|
|
522
|
+
| 29 | 涨停价 | UpLimitPx | DOUBLE | 8 |
|
|
523
|
+
| 30 | 跌停价 | DownLimitPx | DOUBLE | 8 |
|
|
524
|
+
| 31 | 持仓量 | OpenInt | INT | 4 |
|
|
525
|
+
| 32 | 权证溢价率 | OptPremiumRatio | DOUBLE | 8 |
|
|
526
|
+
| 33 | 卖价10档 | OfferPrice | DOUBLE[] | 80 |
|
|
527
|
+
| 34 | 买价10档 | BidPrice | DOUBLE[] | 80 |
|
|
528
|
+
| 35 | 卖量10档 | OfferOrderQty | LONG[] | 80 |
|
|
529
|
+
| 36 | 买量10档 | BidOrderQty | LONG[] | 80 |
|
|
530
|
+
| 37 | 申买10档委托笔数 | BidNumOrders | INT[] | 40 |
|
|
531
|
+
| 38 | 申卖10档委托笔数 | OfferNumOrders | INT[] | 40 |
|
|
532
|
+
| 39 | ETF申购笔数 | ETFBuyNumber | INT | 4 |
|
|
533
|
+
| 40 | ETF申购数量 | ETFBuyAmount | LONG | 8 |
|
|
534
|
+
| 41 | ETF申购金额 | ETFBuyMoney | DOUBLE | 8 |
|
|
535
|
+
| 42 | ETF赎回笔数 | ETFSellNumber | INT | 4 |
|
|
536
|
+
| 43 | ETF赎回数量 | ETFSellAmount | LONG | 8 |
|
|
537
|
+
| 44 | ETF赎回金额 | ETFSellMoney | DOUBLE | 8 |
|
|
538
|
+
| 45 | 债券到期收益率 | YieldToMatu | DOUBLE | 8 |
|
|
539
|
+
| 46 | 权证执行的总数量 | TotWarExNum | DOUBLE | 8 |
|
|
540
|
+
| 47 | 买入撤单笔数 | WithdrawBuyNumber | INT | 4 |
|
|
541
|
+
| 48 | 买入撤单数量 | WithdrawBuyAmount | LONG | 8 |
|
|
542
|
+
| 49 | 买入撤单金额 | WithdrawBuyMoney | DOUBLE | 8 |
|
|
543
|
+
| 50 | 卖出撤单笔数 | WithdrawSellNumber | INT | 4 |
|
|
544
|
+
| 51 | 卖出撤单数量 | WithdrawSellAmount | LONG | 8 |
|
|
545
|
+
| 52 | 卖出撤单金额 | WithdrawSellMoney | DOUBLE | 8 |
|
|
546
|
+
| 53 | 买入总笔数 | TotalBidNumber | INT | 4 |
|
|
547
|
+
| 54 | 卖出总笔数 | TotalOfferNumber | INT | 4 |
|
|
548
|
+
| 55 | 买入委托成交最大等待时间 | MaxBidDur | INT | 4 |
|
|
549
|
+
| 56 | 卖出委托最大等待时间 | MaxSellDur | INT | 4 |
|
|
550
|
+
| 57 | 买方委托价位数 | BidNum | INT | 4 |
|
|
551
|
+
| 58 | 卖方委托价位数 | SellNum | INT | 4 |
|
|
552
|
+
| 59 | 入库时间 | LocalTime | TIME | 4 |
|
|
553
|
+
| 60 | 消息序列号 | SeqNo | INT | 4 |
|
|
554
|
+
| 61 | 委托卖量50档 | OfferOrders | LONG[] | 400 |
|
|
555
|
+
| 62 | 委托买量50档 | BidOrders | LONG[] | 400 |
|
|
556
|
+
|
|
557
|
+
对照表计算出单行数据字节数,并估算单日单只股票的数据大小:
|
|
558
|
+
|
|
559
|
+
```dolphindb
|
|
560
|
+
rowSize = 19 * 4 + 35 * 8 + 2 * 40 + 4 * 80 + 2 * 400
|
|
561
|
+
rowSize
|
|
562
|
+
// output: 1,556(B)
|
|
563
|
+
|
|
564
|
+
oneDayPerStock = 4802 * 1556 \ 1024 \ 1024
|
|
565
|
+
oneDayPerStock
|
|
566
|
+
// output: 7.12(MB)
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
**方法二:**直接导入部分数据估算单行数据的字节数,并估算单日单只股票的数据量。
|
|
570
|
+
|
|
571
|
+
```dolphindb
|
|
572
|
+
// 这里直接取模拟的第一行数据为例
|
|
573
|
+
rowSize = t[0].values().memSize()
|
|
574
|
+
// output: 1,728(B)
|
|
575
|
+
|
|
576
|
+
oneDayPerStock = 4802 * 1728 \ 1024 \ 1024
|
|
577
|
+
oneDayPerStock
|
|
578
|
+
// output: 7.9(MB)
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
注:
|
|
582
|
+
|
|
583
|
+
这里以模拟数据为例,但是实际场景下,数据可能是来源于文件导入或者流订阅写入(插件、API等),此使需要把 t
|
|
584
|
+
替换成实际的数据源。
|
|
585
|
+
|
|
586
|
+
**STEP2. 分区方案制定**
|
|
587
|
+
|
|
588
|
+
根据实践经验,TSDB 存储引擎较合理的分区粒度是 400MB~1GB,根据上面的估算,单日数据量约为 7~8MB。以 8 MB
|
|
589
|
+
为基准,如果按月分区则单分区数据量约为 240MB,粒度略小。若设置为 2
|
|
590
|
+
个月一个分区,数据量满足需求,但是必须设置分区类型为范围分区(RANGE),而 RANGE
|
|
591
|
+
分区不支持自动拓展,随着数据量增长,可能会造成范围外的数据无法写入,用户需要手动调用函数
|
|
592
|
+
`addRangePartitions`
|
|
593
|
+
进行分区拓展。因此,对于时间类型,推荐使用可自动拓展分区的值分区(VALUE)作为分区类型。
|
|
594
|
+
|
|
595
|
+
注:
|
|
596
|
+
|
|
597
|
+
按年分区只能用 RANGE 分区方案,因为 DolphinDB
|
|
598
|
+
最粗粒度的时间类型仅支持到月,不支持年,因此无法通过 VALUE 分区实现分区。具体的年分区脚本参见 3.4 问题 1。
|
|
599
|
+
|
|
600
|
+
那么为了满足需求,这里可以提出两种分区方案:
|
|
601
|
+
|
|
602
|
+
- **方案一.** 按日 VALUE 分区 + 按股票字段 HASH 分区:如果设置 HASH 桶数为 50,5000
|
|
603
|
+
支股票哈希后每个桶约为 100 支,则单分区数据量约为 800 MB,满足需求。
|
|
604
|
+
- **方案二.** 按月 VALUE 分区 + 按股票字段 HASH 分区:单月单只股票的数据量是 240MB,
|
|
605
|
+
因此需要确保每个桶的股票数为 3 或者 4 才能满足需求,则 HASH 桶数为 1250 ~ 1666,满足需求。
|
|
606
|
+
|
|
607
|
+
**STEP3. 分区方案评估**
|
|
608
|
+
|
|
609
|
+
分析方案二,局限性如下:(1)HASH 桶数过多,每个桶只对应了 3~4
|
|
610
|
+
只股票;(2)快照查询的场景下,按日检索是一个高频的查询方式。在此场景下,按月分区的性能没有按日分区高。(3)一般场景下不会按照 HASH
|
|
611
|
+
值进行查询,HASH 分区更多是用在降低分区粒度的场景。
|
|
612
|
+
|
|
613
|
+
综上选取方案一,是一个较好的选择,即按天分区 + 按股票代码 HASH 50 分区。
|
|
614
|
+
|
|
615
|
+
#### 3.3.3 快速创建一个数据表
|
|
616
|
+
|
|
617
|
+
DolphinDB SQL 建表语法和传统 SQL
|
|
618
|
+
类似,除了指定的表名、字段名、字段类型外,额外增加了一些数据库的配置参数。
|
|
619
|
+
|
|
620
|
+
```dolphindb
|
|
621
|
+
create table dbPath.tableName (
|
|
622
|
+
schema[columnDescription]
|
|
623
|
+
// 字段名 字段类型 [comment = 字段注解, compress = 压缩方案, index = 向量索引]
|
|
624
|
+
)
|
|
625
|
+
[partitioned by partitionColumns], // 分区列
|
|
626
|
+
[sortColumns], // 排序列
|
|
627
|
+
[keepDuplicates=ALL], // 去重机制
|
|
628
|
+
[sortKeyMappingFunction] // 排序列映射函数
|
|
629
|
+
[softDelete=false] // 软删除配置
|
|
630
|
+
[comment] // 表注释
|
|
631
|
+
```
|
|
632
|
+
|
|
633
|
+
配置参数的用法详见[createPartitionedTable](../funcs/c/createPartitionedTable.html) 参数说明。
|
|
634
|
+
|
|
635
|
+
根据金融数据最佳实践方案,创建数据库 "dfs://stock\_lv2\_snapshot" 下的分布式表 "snapshot",设置分区列为
|
|
636
|
+
TradeDate(对应按日 VALUE 分区)和 SecurityID(对应 SYMBOL HASH
|
|
637
|
+
分区)。后续数据写入时,将依据这分区字段的值,将数据划分存储到不同的分区中。
|
|
638
|
+
|
|
639
|
+
表 3-3 沪深股票 Level2 快照数据分区方案
|
|
640
|
+
|
|
641
|
+
| **产品大类** | **数据集** | **分区列**partitionColumns | **排序列**sortColumns |
|
|
642
|
+
| --- | --- | --- | --- |
|
|
643
|
+
| 股票 | Level2 快照(沪深合并) | 交易日期 + 股票代码 | 交易所类型 + 股票代码 + 交易时间 |
|
|
644
|
+
|
|
645
|
+
```dolphindb
|
|
646
|
+
create table "dfs://stock_lv2_snapshot"."snapshot"(
|
|
647
|
+
//comment添加字段注释,compress指定压缩方法
|
|
648
|
+
TradeDate DATE[comment="交易日期", compress="delta"]
|
|
649
|
+
TradeTime TIME[comment="交易时间", compress="delta"]
|
|
650
|
+
MDStreamID SYMBOL
|
|
651
|
+
SecurityID SYMBOL
|
|
652
|
+
SecurityIDSource SYMBOL
|
|
653
|
+
TradingPhaseCode SYMBOL
|
|
654
|
+
ImageStatus INT
|
|
655
|
+
PreCloPrice DOUBLE
|
|
656
|
+
NumTrades LONG
|
|
657
|
+
TotalVolumeTrade LONG
|
|
658
|
+
TotalValueTrade DOUBLE
|
|
659
|
+
LastPrice DOUBLE
|
|
660
|
+
OpenPrice DOUBLE
|
|
661
|
+
HighPrice DOUBLE
|
|
662
|
+
LowPrice DOUBLE
|
|
663
|
+
ClosePrice DOUBLE
|
|
664
|
+
DifPrice1 DOUBLE
|
|
665
|
+
DifPrice2 DOUBLE
|
|
666
|
+
PE1 DOUBLE
|
|
667
|
+
PE2 DOUBLE
|
|
668
|
+
PreCloseIOPV DOUBLE
|
|
669
|
+
IOPV DOUBLE
|
|
670
|
+
TotalBidQty LONG
|
|
671
|
+
WeightedAvgBidPx DOUBLE
|
|
672
|
+
AltWAvgBidPri DOUBLE
|
|
673
|
+
TotalOfferQty LONG
|
|
674
|
+
WeightedAvgOfferPx DOUBLE
|
|
675
|
+
AltWAvgAskPri DOUBLE
|
|
676
|
+
UpLimitPx DOUBLE
|
|
677
|
+
DownLimitPx DOUBLE
|
|
678
|
+
OpenInt INT
|
|
679
|
+
OptPremiumRatio DOUBLE
|
|
680
|
+
OfferPrice DOUBLE[]
|
|
681
|
+
BidPrice DOUBLE[]
|
|
682
|
+
OfferOrderQty LONG[]
|
|
683
|
+
BidOrderQty LONG[]
|
|
684
|
+
BidNumOrders INT[]
|
|
685
|
+
OfferNumOrders INT[]
|
|
686
|
+
ETFBuyNumber INT
|
|
687
|
+
ETFBuyAmount LONG
|
|
688
|
+
ETFBuyMoney DOUBLE
|
|
689
|
+
ETFSellNumber INT
|
|
690
|
+
ETFSellAmount LONG
|
|
691
|
+
ETFSellMoney DOUBLE
|
|
692
|
+
YieldToMatu DOUBLE
|
|
693
|
+
TotWarExNum DOUBLE
|
|
694
|
+
WithdrawBuyNumber INT
|
|
695
|
+
WithdrawBuyAmount LONG
|
|
696
|
+
WithdrawBuyMoney DOUBLE
|
|
697
|
+
WithdrawSellNumber INT
|
|
698
|
+
WithdrawSellAmount LONG
|
|
699
|
+
WithdrawSellMoney DOUBLE
|
|
700
|
+
TotalBidNumber INT
|
|
701
|
+
TotalOfferNumber INT
|
|
702
|
+
MaxBidDur INT
|
|
703
|
+
MaxSellDur INT
|
|
704
|
+
BidNum INT
|
|
705
|
+
SellNum INT
|
|
706
|
+
LocalTime TIME
|
|
707
|
+
SeqNo INT
|
|
708
|
+
OfferOrders LONG[]
|
|
709
|
+
BidOrders LONG[]
|
|
710
|
+
)
|
|
711
|
+
partitioned by TradeDate, SecurityID,
|
|
712
|
+
sortColumns=["SecurityID","TradeTime"],
|
|
713
|
+
keepDuplicates=ALL
|
|
714
|
+
```
|
|
715
|
+
|
|
716
|
+
**脚本说明:**
|
|
717
|
+
|
|
718
|
+
与传统关系型数据库不同,DolphinDB create table 语句支持对分布式存储和分区的支持,对于分布式表,表名处指定的是
|
|
719
|
+
dbPath.tbName 即 “数据库名.数据表名”。此外,用户需要在字段声明后添加一部分分布式表的配置,如分区配置 partitioned
|
|
720
|
+
by 等(部分配置只适用于对应的存储引擎,如 sortColumns 和 keepDuplicates 是 TSDB 引擎专属的配置)。
|
|
721
|
+
|
|
722
|
+
在字段类型声明中,INT[], LONG[], DOUBLE[] 是 DolphinDB 特有的 ARRAY
|
|
723
|
+
类型,用于声明数组向量字段,数组向量是一种特殊的向量,用于存储可变长度的二维数组,详情参考 [数组向量(array
|
|
724
|
+
vector)](../progr/data_types_forms/arrayVector.html) 。
|
|
725
|
+
|
|
726
|
+
**思考题:**
|
|
727
|
+
|
|
728
|
+
(1)模拟写入几天的数据,写入后,尝试重新查询出表中的数据,观察数据的查询顺序,思考下述两个问题:
|
|
729
|
+
|
|
730
|
+
- 查询顺序和写入顺序是否一致?它和分区之间的关系是怎么样的?
|
|
731
|
+
- 查询顺序是否按照 sortColumns 排序?若不是,则思考 sortColumns
|
|
732
|
+
起到怎么样的作用?
|
|
733
|
+
|
|
734
|
+
```dolphindb
|
|
735
|
+
re1 = select top 10000 * from loadTable("dfs://stock_lv2_snapshot", "snapshot")
|
|
736
|
+
re2 = select top 10000 * from loadTable("dfs://stock_lv2_snapshot", "snapshot") order by SecurityID, TradeTime
|
|
737
|
+
eqObj(re1.values(), re2.values())
|
|
738
|
+
```
|
|
739
|
+
|
|
740
|
+
模拟数据的写入脚本可以参考:
|
|
741
|
+
|
|
742
|
+
```dolphindb
|
|
743
|
+
// 定义按天写入的函数
|
|
744
|
+
def writeDataByDate(date, dbName, tbName, stockNum): tableInsert(loadTable(dbName, tbName), stockSnapshot(tradeDate=date, securityNumber=stockNum))
|
|
745
|
+
|
|
746
|
+
// 写入几个交易日的数据,此处使用交易日历函数获取 5 天交易日
|
|
747
|
+
dates = getMarketCalendar('XSHE', 2022.01.01, 2022.01.10)
|
|
748
|
+
// [2022.01.04,2022.01.05,2022.01.06,2022.01.07,2022.01.10]
|
|
749
|
+
|
|
750
|
+
// each 函数循环在提交后台写入任务,一天一个 job,每个 job 返回写入的数据量
|
|
751
|
+
each(date -> submitJob("writeData2snapshot", "write by date", writeDataByDate{, "dfs://stock_lv2_snapshot", "snapshot", 100}, date), dates)
|
|
752
|
+
|
|
753
|
+
// 查看 job 的状态,获取所有 job 的返回结果
|
|
754
|
+
getRecentJobs(5)
|
|
755
|
+
each(getJobReturn, getRecentJobs(5).jobId)
|
|
756
|
+
// [480200,480200,480200,480200,480200]
|
|
757
|
+
|
|
758
|
+
// 查询表的总数据量,exec 查询返回一个标量
|
|
759
|
+
exec count(*) from loadTable("dfs://stock_lv2_snapshot", "snapshot")
|
|
760
|
+
// 2401000
|
|
761
|
+
```
|
|
762
|
+
|
|
763
|
+
注:
|
|
764
|
+
|
|
765
|
+
阅读 [TSDB 存储引擎详解](tsdb_explained.html)
|
|
766
|
+
|
|
767
|
+
(2)以上表字段 bidPrice 和 offerPrice ,存储的是 10 档的价格。将其存储为一列 DOUBLE[] 类型字段和拆分成 10
|
|
768
|
+
列 DOUBLE 字段存储,两者的区别是什么,数组向量存储有什么优越性?
|
|
769
|
+
|
|
770
|
+
注:
|
|
771
|
+
|
|
772
|
+
阅读 [Array Vector 的最佳实践指南](Array_Vector.html)
|
|
773
|
+
|
|
774
|
+
### 3.4 常见问题
|
|
775
|
+
|
|
776
|
+
**分区**
|
|
777
|
+
|
|
778
|
+
1. 创建数据库时如何按年进行分区?
|
|
779
|
+
|
|
780
|
+
DolphinDB 不支持年这一数据类型,因此无法按年进行值分区。按年分区需使用 RANGE 分区进行,可参考下述脚本:
|
|
781
|
+
|
|
782
|
+
```dolphindb
|
|
783
|
+
create database "dfs://yearDB" partitioned by RANGE(date(2010.01M+12*1..10)), engine='TSDB'
|
|
784
|
+
```
|
|
785
|
+
2. 建库建表完成后,是否支持修改分区方案?
|
|
786
|
+
|
|
787
|
+
由于数据存储是依赖于分区的,因此不支持直接修改分区方案。最佳做法是重新创建一个新分区方案的库表,然后将数据迁移过去,最后删除原来的库表。
|
|
788
|
+
|
|
789
|
+
可以借助 `mr +
|
|
790
|
+
repartitionDS`函数进行数据迁移(以本教程的快照数据为例):
|
|
791
|
+
|
|
792
|
+
```dolphindb
|
|
793
|
+
// 创建一个新的分区方案的数据库表
|
|
794
|
+
drop database if exists "dfs://stock_lv2_snapshot_1"
|
|
795
|
+
create database "dfs://stock_lv2_snapshot_1" partitioned by VALUE(2022.01M..2022.12M), HASH([SYMBOL, 10]), engine='TSDB'
|
|
796
|
+
|
|
797
|
+
// 省略部分表字段代码
|
|
798
|
+
create table "dfs://stock_lv2_snapshot_1"."snapshot"(
|
|
799
|
+
TradeDate DATE[comment="交易日期", compress="delta"]
|
|
800
|
+
TradeTime TIME[comment="交易时间", compress="delta"]
|
|
801
|
+
...
|
|
802
|
+
)
|
|
803
|
+
partitioned by TradeDate, SecurityID,
|
|
804
|
+
sortColumns=[`SecurityID,`TradeTime],
|
|
805
|
+
keepDuplicates=ALL
|
|
806
|
+
|
|
807
|
+
// 由于 repartitionDS 只能按照一个字段重新分区,这里选用了不会造成新库表写入分区冲突的 TradeDate 字段
|
|
808
|
+
snapshot = loadTable("dfs://stock_lv2_snapshot", "snapshot")
|
|
809
|
+
ds = repartitionDS(<select * from snapshot>,`TradeDate, VALUE, 2022.01M..2022.12M);
|
|
810
|
+
|
|
811
|
+
// 定义 map 函数用于写入新的库表
|
|
812
|
+
def writeDS(dst_dbPath, dst_tbName, data){
|
|
813
|
+
dstTb=loadTable(dst_dbPath, dst_tbName)
|
|
814
|
+
dstTb.append!(data)
|
|
815
|
+
flushTSDBCache()
|
|
816
|
+
}
|
|
817
|
+
// mr 迁移数据,如果内存不够大:
|
|
818
|
+
1. 串行迁移,即 parallel = false
|
|
819
|
+
2. ds 数据源拆分成更小的单元,如按日拆分
|
|
820
|
+
mr(ds, writeDS{"dfs://stock_lv2_snapshot_1", "snapshot"}, parallel=false)
|
|
821
|
+
|
|
822
|
+
// 删除旧的库表
|
|
823
|
+
drop database if exists "dfs://stock_lv2_snapshot"
|
|
824
|
+
```
|
|
825
|
+
|
|
826
|
+
社区版默认配置执行上述代码时,可能会报错:The size of the write table cannot exceed the size
|
|
827
|
+
of cacheEngine. 或者 Out of Memory. 推荐根据注释方案调整写入粒度,参考脚本如下:
|
|
828
|
+
|
|
829
|
+
```dolphindb
|
|
830
|
+
ds = repartitionDS(<select * from snapshot>,`TradeDate, VALUE, 2022.01.01..2022.12.31);
|
|
831
|
+
mr(ds, writeDS{"dfs://stock_lv2_snapshot_1", "snapshot"}, parallel=false)
|
|
832
|
+
```
|
|
833
|
+
|
|
834
|
+
**数据库&数据表**
|
|
835
|
+
|
|
836
|
+
1. 表字段命名的规范是什么?能否以数字开头?
|
|
837
|
+
|
|
838
|
+
创建表时,列名必须由中文或英文字母、数字或下划线 (\_)组成,且必须以**中文或英文字母开头**。
|
|
839
|
+
|
|
840
|
+
有以下几种场景可能出现特殊列名,即不满足上述需求的列名:
|
|
841
|
+
|
|
842
|
+
- `as` 函数取别名:`table(1 2 3 as
|
|
843
|
+
"_aa")`
|
|
844
|
+
- `addColumn` 添加列:`t.addColumn("_bb",
|
|
845
|
+
INT)`
|
|
846
|
+
- pivot by
|
|
847
|
+
行列转换:
|
|
848
|
+
|
|
849
|
+
```dolphindb
|
|
850
|
+
t = table(2022.01.01 + 1..5 as date, `a`a`c`c`b as sym, 1..5 as val)
|
|
851
|
+
select last(val) from t pivot by sym, date
|
|
852
|
+
/* output:
|
|
853
|
+
sym 2022.01.02 2022.01.03 2022.01.04 2022.01.05 2022.01.06
|
|
854
|
+
--- ---------- ---------- ---------- ---------- ----------
|
|
855
|
+
a 1 2
|
|
856
|
+
b 5
|
|
857
|
+
c 3 4
|
|
858
|
+
*/
|
|
859
|
+
```
|
|
860
|
+
2. 是否支持修改数据库名、数据表名、字段名?
|
|
861
|
+
|
|
862
|
+
不支持修改数据库名,但是可以通过函数 `renameTable` 和
|
|
863
|
+
`rename!` 修改表名和字段名,但需要注意 TSDB
|
|
864
|
+
引擎存储的分布式表不支持对字段进行改名、修改值和删除的操作。
|
|
865
|
+
3. 建库时 "dfs://" 路径是什么含义?此类库中的表存储在什么路径下?
|
|
866
|
+
|
|
867
|
+
"dfs://"
|
|
868
|
+
用于声明数据库的类型是分布式数据库,除此以外,还有 "oltp://" 用于声明在线事务处理数据库。所有 "dfs://"
|
|
869
|
+
开头的数据库中的数据都存储在 volumes 参数配置的路径下,可通过 getConfig("volumes")
|
|
870
|
+
查看。
|
|
871
|
+
|
|
872
|
+
单节点模式下,volumes 的默认目录是
|
|
873
|
+
<HomeDir>/storage。集群模式下,默认目录是<HomeDir>/<nodeAlias>/storage。
|
|
874
|
+
|
|
875
|
+

|
|
876
|
+
4. 存储时,推荐选择宽表还是窄表?各自的适用的场景是什么?
|
|
877
|
+
|
|
878
|
+
- 宽表:截面计算便捷,数据写入速度上优于窄表;增删改基于字段操作,开销较大。
|
|
879
|
+
- 窄表:增删改基于记录操作,比较便捷开销较小;截面计算不便,需要通过 pivot 转换为宽表。
|
|
880
|
+
|
|
881
|
+
以中高频因子存储为例,由于增删因子操作较为频繁,综合性能考虑窄表优于宽表,具体可参考 [中高频多因子库存储最佳实践](best_practices_for_multi_factor.html) 中的分析步骤去评估是存储为宽表还是窄表。
|
|
882
|
+
5. 存储时,推荐选择分布式表还是维度表?各自的适用的场景是什么?
|
|
883
|
+
|
|
884
|
+
首先要理解维度表的概念,维度表实质上是一个持久化且不进行分区的表。前文提到分区的主要目的是将海量数据划分为小块,方便快速定位查找,因此如果数据量较小且需要持久化,则推荐存储为维度表,否则存储为分布式表。
|
|
885
|
+
6. 表中是否可以存储字典、多维数据等对象?
|
|
886
|
+
|
|
887
|
+
不支持存储字典,如果是类似 json 数据,可以通过 BLOB
|
|
888
|
+
超长字符串的格式存储在表中;表中只能存储数组向量、列式元组(仅内存表)等类型强一致的二维对象,不支持超过二维或者类型不一致的二维数组存储。
|
|
889
|
+
7. 是否支持多线程并发写入数据表,目前报错:filepath xxx has been owned by transaction.
|
|
890
|
+
|
|
891
|
+
DolphinDB 默认不允许对同一分区进行并发写入,否则会造成分区冲突,报上述错误。有一个方案是创建数据库时配置
|
|
892
|
+
atomic='CHUNK',设置后,系统允许用户多线程并发写入同一个分区,但由于不能完全保证事务的原子性,可能出现部分分区写入成功而部分分区写入失败的情况。同时由于采用了重试机制,写入速度可能较慢。
|
|
893
|
+
|
|
894
|
+
**事务**
|
|
895
|
+
|
|
896
|
+
1. 删除数据库是事务操作吗?是否支持回滚?
|
|
897
|
+
|
|
898
|
+
是的,如果删除数据库(`dropDatabase`)或者删除分区(`dropParition`)失败,系统会自动回滚事务。
|
|
899
|
+
2. 删除数据时产生下述报错,如何解决:
|
|
900
|
+
|
|
901
|
+
- 报错:deleteSubChunks failed, path "/xxx" does not exist.
|
|
902
|
+
- 报错:deleteSubChunks failed on '/dbName, chunk xxxx is not in COMPLETE
|
|
903
|
+
state'
|
|
904
|
+
|
|
905
|
+
该报错是在数据节点上删除数据时,找不到对应的 chunk 分区信息时产生的。
|
|
906
|
+
|
|
907
|
+
下面给出一些此类问题的排查思路:
|
|
908
|
+
|
|
909
|
+
1. 首先在控制节点调用函数 `getClusterChunksStatus`
|
|
910
|
+
函数查看对应数据库下的分区状态信息,如果报错给出了 chunk 信息,则重点查看该 chunk 的状态。需要重点关注并记录的信息有
|
|
911
|
+
version(chunk 版本),state(chunk 状态) 和 replicaCount(副本数)。
|
|
912
|
+
2. 然后在数据节点调用 `pnodeRun(getAllChunks{"/dbName%"})` 统计一下所有
|
|
913
|
+
chunk 的副本数是否有缺失,然后针对报错的 chunk 记录一下 version 和 state 信息。
|
|
914
|
+
3. 比较控制节点和数据节点 version 是否一致;检查副本数是否与控制节点记录的元数据一致;确认 chunk
|
|
915
|
+
状态是否都为完成状态(COMPLETE)。
|
|
916
|
+
|
|
917
|
+
若排查得到分区不一致,推荐将上述信息截图后提交给官方进行排查,有运维经验的用户可以参照教程 [分区状态不一致](repair_chunk_status.html)
|
|
918
|
+
中的方法尝试解决。
|
|
919
|
+
|
|
920
|
+
- 报错:<ChunkInRecovery>deleteSubChunks failed on '/xxx', chunk xxx
|
|
921
|
+
is in RECOVERING
|
|
922
|
+
state.若等待分区恢复耗时过久,则可以通过下述脚本强制删除处在恢复状态的分区:
|
|
923
|
+
|
|
924
|
+
```dolphindb
|
|
925
|
+
use ops
|
|
926
|
+
dropRecoveringPartitions(dbPath="dfs://xxx", tableName="zzz")
|
|
927
|
+
// tableName 为可选参数,可不指定
|
|
928
|
+
```
|
|
929
|
+
|
|
930
|
+
### 3.5 下一步阅读
|
|
931
|
+
|
|
932
|
+
**概念学习**
|
|
933
|
+
|
|
934
|
+
[数据分区](../db_distr_comp/db/db_partitioning.html)
|
|
935
|
+
|
|
936
|
+
[分布式事务](../db_distr_comp/db/transaction.html)
|
|
937
|
+
|
|
938
|
+
**实操案例**
|
|
939
|
+
|
|
940
|
+
[存储金融数据的分区方案最佳实践](best_practices_for_partitioned_storage.html)
|
|
941
|
+
|
|
942
|
+
[中高频多因子库存储最佳实践](best_practices_for_multi_factor.html)
|
|
943
|
+
|
|
944
|
+
## 4. 数据导入与数据清洗
|
|
945
|
+
|
|
946
|
+
创建好库表后,下一步就需要进行数据导入或数据迁移,在此过程中可能会遇到以下问题:
|
|
947
|
+
|
|
948
|
+
- **数据无法正确导入**:源数据无法直接解析成 DolphinDB
|
|
949
|
+
的数据类型,造成数据错误、数据空值等;中文数据由于字符编码导致导入后的数据呈现乱码
|
|
950
|
+
- **导入数据预处理**:需要增加、修改、重排序字段;需要将多列数据存储成数组向量入库;导入时需要跳过表头、跳过指定行数
|
|
951
|
+
- **数据膨胀**:导入后的数据量较源文件大小膨胀了很多
|
|
952
|
+
- **内存溢出**:社区版本受到内存限制,导入时可能会出现 Out Of Memory 内存溢出的现象
|
|
953
|
+
- **并行导入分区冲突**:多线程并发写数据时,可能会抛出异常 The openChunks operation failed because the
|
|
954
|
+
chunk <xxx> is currently locked and in use by transaction <tid>.
|
|
955
|
+
RefId:S00002
|
|
956
|
+
|
|
957
|
+
本教程将针对数据导入中的一系列问题,结合实际案例进行系统地讲解。
|
|
958
|
+
|
|
959
|
+
### 4.1 方法导览
|
|
960
|
+
|
|
961
|
+
DolphinDB 支持多种文件格式导入、从数据库迁移、实时数据订阅等多种数据导入方式。
|
|
962
|
+
|
|
963
|
+
下表整理列出了数据导入 DolphinDB 数据库的不同方式、对应方法以及相关参考文档的链接:[数据迁移方法](../db_distr_comp/db_oper/data_import_method.html)。
|
|
964
|
+
|
|
965
|
+
表 4-1 DolphinDB 中的数据导入方法
|
|
966
|
+
|
|
967
|
+
| **导入方式** | **方法** | **相关链接** |
|
|
968
|
+
| --- | --- | --- |
|
|
969
|
+
| 从文本文件导入(.txt, .csv 文件) | 内置文本文件加载函数: - `loadText`:将文本文件导入为内存表,可在内存中对导入数据进行处理、分析。 - `ploadText`:将文本文件并行导入为分区内存表,与 loadText 相比速度更快。 - `loadTextEx`:将文本文件切分后导入数据库中,支持分布式数据库和内存数据库。 - `textChunkDS`:将文本文件划分为多个小数据源,可搭配 mr 函数进行灵活的数据处理。 | [loadText](../funcs/l/loadText.html) [loadTextEx](../funcs/l/loadTextEx.html) [ploadText](../funcs/p/ploadText.html) [textChunkDS](../funcs/t/textChunkDS.html) |
|
|
970
|
+
| 从 HDF5 文件导入 | 安装并加载 HDF5 插件: ```dolphindb installPlugin("hdf5") loadPlugin("hdf5") ``` 导入函数: - `loadHDF5`:将 HDF5 文件中指定数据集加载为内存表,可在内存中对导入数据进行处理、分析。 - `loadPandasHDF5`:将由 Pandas 保存的 HDF5 文件中的指定数据集加载为 DolphinDB 数据库的内存表。 - `loadHDF5Ex`:将 HDF5 文件中的数据集直接导入数据库中,包括分布式数据库和内存数据库。 - `HDF5DS`:将 HDF5 文件中的指定数据集划分为多个小数据源,可搭配 `mr` 函数进行灵活的数据处理。 | [HDF5](../plugins/hdf5/hdf5.html) |
|
|
971
|
+
| 从 Parquet 文件导入 | 安装&加载 Parquet 插件: ```dolphindb installPlugin("parquet") loadPlugin("parquet") ``` 导入函数: - `loadParquet` :将 Parquet 文件中指定数据集加载为内存表,可在内存中对导入数据进行处理、分析。 - `loadParquetEx`:将 Parquet 文件中的数据集直接导入数据库中,包括分布式数据库和内存数据库。 - `ParquetDS` :将 Parquet 文件中的指定数据集划分为多个小数据源,可搭配 mr 函数进行灵活的数据处理。 | [Parquet](../plugins/parquet/parquet.html) |
|
|
972
|
+
| 从二进制文件导入 | 内置二进制文件加载函数: - `readRecord!`:将二进制文件转换为 DolphinDB 数据对象,但不可包含字符串类型。 - `loadRecord`:将每个字段长度固定的行式二进制文件加载到内存中,可包含字符串类型。 | [readRecord!](../funcs/r/readRecord_.html) [loadRecord](../funcs/l/loadRecord.html) |
|
|
973
|
+
| 从 MySQL 迁移或同步 | 加载 MySQL 插件:(系统默认安装) ```dolphindb loadPlugin("mysql") ``` 导入函数: - `load`: 通过表名加载数据,并指定起始行和加载的行数。 - `loadEx`:将 MySQL 中的表或查询结果转换为 DolphinDB 数据库的分布式表,然后将表的元数据加载到内存中。 | [MySQL](../plugins/mysql/mysql.html) [Debezium + Kafka 实时同步 MySQL 数据到DolphinDB](Debezium_and_Kafka_data_sync.html) |
|
|
974
|
+
| 从 Oracle 迁移或同步 | 通过 DataX 插件 DolphinDBWriter: 插件安装 & 部署: - 下载 DataX。<https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202303/datax.tar.gz> - 下载 DolphinDBWriter 插件。<https://gitee.com/dolphindb/datax-writer/repository/archive/main.zip> - 将 dolphindbwriter 插件移动至 DataX 对应目录下。将 datax-writer-main/dist/ 中的 dolphindbwriter/ 文件夹移动至 datax/plugin/writer/ 文件夹中。 导入前需要配置 DataX 的 JSON 文件,主要包括 reader、writer 和 setting 三个部分。导入任务启动: ```dolphindb python datax.py ../job/OracleToDolphinDB.json ``` | [基于 DataX 的 DolphinDB 数据导入工具](datax_writer.html) [Debezium+Kafka 实时同步 Oracle 11g 数据到 DolphinDB](Debezium_Kafka_Oracle_sync.html) |
|
|
975
|
+
| 从消息队列导入 | 通过 Kafka、Plusar、ActiveMQ、ZeroMQ 等消息中间件的插件。 以 Kafka 为例,加载 Kafka 插件: ```dolphindb installPlugin("kafka") loadPlugin("kafka") ``` 加载后,可以先创建消费者并订阅对应主题的数据,然后创建消费线程将订阅的数据存入 DolphinDB 的流表,最后订阅流表数据入库。 ```dolphindb // 创建消费者 config = dict(STRING, ANY) config["metadata.broker.list"] = "127.0.0.1:9092" config["group.id"] = "kafkaDemo" consumer = kafka::consumer(config) // 订阅对应主题的数据 kafka::subscribe(consumer, ["demo"]) // 创建消费线程 def kafkaJsonParse1(msg,key,topic){ return parseJsonTable(msg) } conn = kafka::createSubJob(consumer,st,kafkaJsonParse1,"kafka1Structural") // 订阅流表数据入库 subscribeTable(tableName = `st,actionName = `demo, offset = 0,handler = loadTable("dfs://demo","test"), msgAsTable=true,batchSize = 1024) ``` | [Kafka](../plugins/kafka/kafka.html) |
|
|
976
|
+
| 从其他行情源导入 | 以 WindTDF 为例: ```dolphindb installPlugin("WindTDF") loadPlugin("WindTDF") go // 建立 handle handle = WindTDF::createHandle(HOST, PORT, USERNAME, PASSWORD, dict(["outputRecvTime", "outputElapsed"], [true, true])); // 订阅上交所的股票快照 schema = WindTDF::getSchema(`snapshot); snapshot_sh_s = streamTable(10000:0, schema[`name], schema[`typeString]); share snapshot_sh_s as snapshot_sh_s1; WindTDF::subscribe(handle, snapshot_sh_s1, "SH-2-0", "snapshot"); // 订阅上交所的期权快照 schema = WindTDF::getSchema(`futures); futures_sh_s = streamTable(10000:0, schema[`name], schema[`typeString]); share futures_sh_s as futures_sh_s1; WindTDF::subscribe(handle, futures_sh_s1, "SH-1-1", "futures"); // 获取已有的 handle handle = WindTDF::getHandle(); // 建立连接 WindTDF::connect(handle) // 查看订阅状态 WindTDF::getStatus() // 关闭连接 WindTDF::close(handle) // 取消已有的订阅(非必要) WindTDF::unsubscribe(handle, "SH-2-0", "snapshot"); WindTDF::unsubscribe(handle, "SH-1-1", "futures"); // 移除handle WindTDF::delete(handle) ``` | - 上交所行情:[SSEQuotationFile](../plugins/SSEQuotationFile.html) - 万得实时行情:[WindTDF](../plugins/windtdf.html) - XTP 行情服务系统:[XTP](../plugins/xtp.html) - 中金所行情插件:[DataFeed](../plugins/datafeed.html) - 盛立极速行情系统:[EFH](../plugins/efh.html) - 综合交易平台:[CTP](../plugins/ctp.html) - 恒生极速行情服务软件:[NSQ](../plugins/nsq/nsq.html) - 华泰证券提供的极速金融数据服务:[INSIGHT](../plugins/insight/insight.html) - 华锐高速行情平台:[amdQuote](../plugins/amdquote/amdquote.html) 彭博等更多行情插件也在开发中,用户也可以自行开发插件,[参考 插件开发教程](../plugins/plg_dev_tutorial.html),用户开发插件后可以提交给 DolphinDB 官方插件市场,优质的插件有机会在官方进行分享与售卖。 |
|
|
977
|
+
|
|
978
|
+
### 4.2 从文本文件导入数据
|
|
979
|
+
|
|
980
|
+
本教程作为入门教程,将以最基础的文本文件导入数据作为示例,介绍导入的详细过程,以及导入中可能碰到的问题。
|
|
981
|
+
|
|
982
|
+
本章节使用的历史数据通过模拟产生,数据类型为快照数据,存储方式为 csv 文件。注意,导入的 csv 文件需要和 DolphinDB server
|
|
983
|
+
位于同一台服务器,且启动 DolphinDB server 的用户需要有该文件的读权限。
|
|
984
|
+
|
|
985
|
+
#### 4.2.1 导入一年快照数据(每天一个文件)
|
|
986
|
+
|
|
987
|
+
**场景:**一年份的股票快照数据,每天一个 csv 文件,包含 100 只股票。
|
|
988
|
+
|
|
989
|
+
模拟数据生成 csv
|
|
990
|
+
文件,脚本如下:
|
|
991
|
+
|
|
992
|
+
```dolphindb
|
|
993
|
+
use MockData
|
|
994
|
+
dates = getMarketCalendar('XSHE', 2022.01.01, 2023.01.01)
|
|
995
|
+
def mockDataByDay(path, date){
|
|
996
|
+
submitJob("mockCsv", "mock data by date", saveText, stockSnapshot(tradeDate=date, securityNumber=100), path + string(date) + ".csv")
|
|
997
|
+
}
|
|
998
|
+
path = "<YOUR_PATH>/snapData/"
|
|
999
|
+
each(mockDataByDay{path}, dates)
|
|
1000
|
+
getRecentJobs(242)
|
|
1001
|
+
```
|
|
1002
|
+
|
|
1003
|
+

|
|
1004
|
+
|
|
1005
|
+
可以观察到单个文件约为 300M,经验上,对于几百 MB
|
|
1006
|
+
的文件数据作为一批写入较为合适。在此基础上,许多用户为了提高数据导入的性能,通常会尝试多线程进行数据写入。
|
|
1007
|
+
|
|
1008
|
+
注:
|
|
1009
|
+
|
|
1010
|
+
多线程并行处理方法:利用函数 `submitJob`
|
|
1011
|
+
对每个文件的写入都创建一个后台作业,提交的批处理作业的并行度受到配置项 workerNum 影响,默认发行版配置的是
|
|
1012
|
+
4。
|
|
1013
|
+
|
|
1014
|
+
注:
|
|
1015
|
+
|
|
1016
|
+
区分作业并行度(系统同时处理的作业数)和任务并行度(系统同时处理的作业子任务数)的概念!提交作业后,系统会将作业拆分成多个子任务,子任务之间也可并行执行。`submitJob`
|
|
1017
|
+
函数默认的任务并行度是 2,如果要提高该并行度,可以使用 `submitJobEx` 函数提交任务,并对其参数
|
|
1018
|
+
*parallelism*进行配置。
|
|
1019
|
+
|
|
1020
|
+
```dolphindb
|
|
1021
|
+
// 导入历史数据
|
|
1022
|
+
dataPath = "<YOUR_PATH>/snapData/"
|
|
1023
|
+
file_list = files(dataPath).filename
|
|
1024
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
1025
|
+
tbName = "snapshot"
|
|
1026
|
+
|
|
1027
|
+
// 定义单日写入任务
|
|
1028
|
+
def loadDataByDay(dbName, tbName, schema, fileName){
|
|
1029
|
+
loadTextEx(dbHandle=database(dbName), tableName=tbName, partitionColumns=["TradeDate", "SecurityID"], filename=fileName, schema=schema, sortColumns=[`SecurityID,`TradeTime])
|
|
1030
|
+
}
|
|
1031
|
+
// 创建任务写入作业
|
|
1032
|
+
def createDataLoadJob(dbName, tbName, schema, fileName){
|
|
1033
|
+
submitJob("loadDataByFile", "load data to db", loadDataByDay, dbName, tbName, schema, fileName)
|
|
1034
|
+
}
|
|
1035
|
+
|
|
1036
|
+
// 设置导入的表的结构
|
|
1037
|
+
schema = select name, typeString as type from loadTable("dfs://stock_lv2_snapshot", "snapshot").schema().colDefs
|
|
1038
|
+
|
|
1039
|
+
// 按照文件循环提交导入任务
|
|
1040
|
+
each(createDataLoadJob{dbName, tbName, schema}, dataPath + file_list)
|
|
1041
|
+
```
|
|
1042
|
+
|
|
1043
|
+
通过
|
|
1044
|
+
`getRecentJobs`函数查看最近写入任务的状态,确保所有写入任务全部执行完成。
|
|
1045
|
+
|
|
1046
|
+
```dolphindb
|
|
1047
|
+
// 一年的模拟数据包含 242 日交易日,每日一个文件
|
|
1048
|
+
// 此处可以替换为 file_list.size()
|
|
1049
|
+
getRecentJobs(242)
|
|
1050
|
+
```
|
|
1051
|
+
|
|
1052
|
+

|
|
1053
|
+
|
|
1054
|
+
`getRencentJob` 函数返回的结果是一张表,因此可以通过 SQL
|
|
1055
|
+
对其进行信息的过滤和筛选。例如,过滤提交作业中未完成的作业总数:
|
|
1056
|
+
|
|
1057
|
+
```dolphindb
|
|
1058
|
+
exec count(*) from getRecentJobs(242) where endTime is null
|
|
1059
|
+
```
|
|
1060
|
+
|
|
1061
|
+
如果上述查询返回为
|
|
1062
|
+
0,代表所有任务结束。任务结束后,对库表进行查询,确认数据量是否相同,模拟数据的总数据量应为 242 \*
|
|
1063
|
+
480200=116,208,400。
|
|
1064
|
+
|
|
1065
|
+
```dolphindb
|
|
1066
|
+
select count(*) from loadTable("dfs://stock_lv2_snapshot", "snapshot")
|
|
1067
|
+
// output: 116,208,400
|
|
1068
|
+
```
|
|
1069
|
+
|
|
1070
|
+
#### 4.2.2 导入一天快照数据(每个股票一个文件)
|
|
1071
|
+
|
|
1072
|
+
**场景:**一天的股票快照数据,每个股票一个 csv 文件,共计 500 只股票。
|
|
1073
|
+
|
|
1074
|
+
模拟数据生成 csv 文件,脚本如下:
|
|
1075
|
+
|
|
1076
|
+
```dolphindb
|
|
1077
|
+
use MockData
|
|
1078
|
+
t = stockSnapshot(tradeDate=2023.01.04, securityNumber=500)
|
|
1079
|
+
sids = exec distinct Securityid from t
|
|
1080
|
+
|
|
1081
|
+
def mockDataByStock(path, sid, t){
|
|
1082
|
+
data = select * from t where Securityid = sid
|
|
1083
|
+
submitJob("mockCsv", "mock data by stock", saveText, data, path + sid + ".csv")
|
|
1084
|
+
}
|
|
1085
|
+
|
|
1086
|
+
path = "<YOUR_PATH>/snapDataPerStock/"
|
|
1087
|
+
each(mockDataByStock{path,,t}, sids)
|
|
1088
|
+
select count(*) from getRecentJobs(500) where endTime is null
|
|
1089
|
+
```
|
|
1090
|
+
|
|
1091
|
+

|
|
1092
|
+
|
|
1093
|
+
对于此类只有几 MB 或者几十 MB 的小文件导入的场景,如果与 4.2.1
|
|
1094
|
+
的导入那样,每个文件都起一个线程,那么写入的效率将会很低。这是因为单批次写入数据量很小,而每批写入都会对应一个写入事务,在该场景下,事务的开销是较大的。
|
|
1095
|
+
|
|
1096
|
+
对于此类场景,DolphinDB 推荐先载入文件到内存,在内存中合并多个文件的数据后,再导入数据库中。为了避免分区冲突,本节将属于同一 HASH
|
|
1097
|
+
桶的文件数据作一批导入。
|
|
1098
|
+
|
|
1099
|
+
注:
|
|
1100
|
+
|
|
1101
|
+
实际场景下,如果导入多天的多只股票文件的数据,也可以按照同一只股票多天文件去进行合并,合并的总原则就是不造成分区冲突。
|
|
1102
|
+
|
|
1103
|
+
数据导入的脚本如下,具体逻辑为先将多个文件合成一个 bigTable 然后导入分布式表。
|
|
1104
|
+
|
|
1105
|
+
```dolphindb
|
|
1106
|
+
def loadDataByStock(dbName, tbName, schema, fileNames){
|
|
1107
|
+
bigTable = loop(loadText{schema=schema}, fileNames).unionAll()
|
|
1108
|
+
rows = loadTable(dbName, tbName).tableInsert(bigTable)
|
|
1109
|
+
return rows
|
|
1110
|
+
}
|
|
1111
|
+
```
|
|
1112
|
+
|
|
1113
|
+
通过下述脚本定义一个写入作业的函数,在作业描述中记录了写入数据对应的 HASH 分区信息。
|
|
1114
|
+
|
|
1115
|
+
```dolphindb
|
|
1116
|
+
def createDataLoadJob(dbName, tbName, schema, HashNo, fileNames){
|
|
1117
|
+
submitJob("loadDataByFile", "load data to db "+ string(HashNo), loadDataByStock, dbName, tbName, schema, fileNames)
|
|
1118
|
+
}
|
|
1119
|
+
```
|
|
1120
|
+
|
|
1121
|
+
执行导入任务,将历史文件按照 HASH 分桶,然后每个桶的数据单独作为一批,由同一个后台批处理任务进行写入。
|
|
1122
|
+
|
|
1123
|
+
```dolphindb
|
|
1124
|
+
// 参数定义,可以修改
|
|
1125
|
+
dataPath = "<YOUR_PATH>/snapDataPerStock/"
|
|
1126
|
+
file_list = files(dataPath).filename
|
|
1127
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
1128
|
+
tbName = "snapshot"
|
|
1129
|
+
|
|
1130
|
+
// 获取分布式表的 schema 作为导入数据的 schema
|
|
1131
|
+
schema = select name, typeString as type from loadTable(dbName, tbName).schema().colDefs
|
|
1132
|
+
|
|
1133
|
+
// 将 500 个股票代码文件按照 Hash 分区分桶
|
|
1134
|
+
tmp = table(file_list as path, file_list.split(".")[0] as sid)
|
|
1135
|
+
|
|
1136
|
+
// 此处文件名是股票代码,所以可以字符串处理后得到对应存储的 SecurityId
|
|
1137
|
+
// 计算 SecurityId 的 HASH 值
|
|
1138
|
+
update tmp set hashNo = sid.hashBucket(50)
|
|
1139
|
+
tmp1 = select toArray(path) as fileBucket from tmp group by hashNo
|
|
1140
|
+
fileBucket = tmp1.fileBucket
|
|
1141
|
+
HashNo = tmp1.hashNo
|
|
1142
|
+
|
|
1143
|
+
// 属于同一个桶的文件作为一批数据在同一个线程提交写入
|
|
1144
|
+
each(createDataLoadJob{dbName, tbName, schema}, HashNo, dataPath + fileBucket)
|
|
1145
|
+
|
|
1146
|
+
// 一共 50 个 HASH 分区,因此查看最近 50 个提交的任务
|
|
1147
|
+
getRecentJobs(50)
|
|
1148
|
+
|
|
1149
|
+
// 写入完成后检查写入记录数是否满足需求
|
|
1150
|
+
select count(*) from loadTable(dbName, tbName) where TradeDate=2023.01.04
|
|
1151
|
+
select distinct SecurityId from loadTable(dbName, tbName) where TradeDate=2023.01.04
|
|
1152
|
+
```
|
|
1153
|
+
|
|
1154
|
+
由于导入的接口是 `tableInsert`,它会返回写入的数据条数,且提交的 job 的描述(由
|
|
1155
|
+
`submitJob` 函数的 jobDesc 参数设置)中记录了 HASH
|
|
1156
|
+
对应的分区信息。如果发生异常,例如最后检查时发现最终写入的记录数和原文件记录数不一致,用户可以通过
|
|
1157
|
+
`getRecentJob` 显示 msgError 检查是否有写入失败的任务,或者通过
|
|
1158
|
+
`getJobReturn`去获取作业写入的条数以检查是哪个作业出现问题。对于出现问题的作业我们可以采用
|
|
1159
|
+
`dropPartition` 删除掉写异常的分区然后重写。如 2023.01.04 属于 HASH 0
|
|
1160
|
+
的数据写入异常,则可以通过下述脚本进行重写。
|
|
1161
|
+
|
|
1162
|
+
```dolphindb
|
|
1163
|
+
// 删除异常分区,重新提交写入任务
|
|
1164
|
+
dropPartition(database(dbName),"/20230104/Key0", tableName="snapshot")
|
|
1165
|
+
submitJob("loadDataByFile", "load data to db "+ string(HashNo[0]), loadDataByStock, dbName, tbName, schema, dataPath + fileBucket.row(0))
|
|
1166
|
+
```
|
|
1167
|
+
|
|
1168
|
+
#### 4.2.3 导入逐笔成交数据(每天一个文件)
|
|
1169
|
+
|
|
1170
|
+
**场景:**一天的股票逐笔成交数据,每天一个 csv 文件,共计 500 只股票。
|
|
1171
|
+
|
|
1172
|
+
建库建表代码如下:
|
|
1173
|
+
|
|
1174
|
+
```dolphindb
|
|
1175
|
+
// 建库建表
|
|
1176
|
+
create database "dfs://stock_trade"
|
|
1177
|
+
partitioned by VALUE(2020.01.01..2021.01.01), HASH([SYMBOL, 50])
|
|
1178
|
+
engine='TSDB'
|
|
1179
|
+
|
|
1180
|
+
create table "dfs://stock_trade"."trade"(
|
|
1181
|
+
ChannelNo INT
|
|
1182
|
+
ApplSeqNum LONG
|
|
1183
|
+
MDStreamID SYMBOL
|
|
1184
|
+
BidApplSeqNum LONG
|
|
1185
|
+
OfferApplSeqNum LONG
|
|
1186
|
+
SecurityID SYMBOL
|
|
1187
|
+
SecurityIDSource SYMBOL
|
|
1188
|
+
TradePrice DOUBLE
|
|
1189
|
+
TradeQty LONG
|
|
1190
|
+
ExecType SYMBOL
|
|
1191
|
+
TradeDate DATE[comment="交易日期", compress="delta"]
|
|
1192
|
+
TradeTime TIME[comment="交易时间", compress="delta"]
|
|
1193
|
+
LocalTime TIME
|
|
1194
|
+
SeqNo LONG
|
|
1195
|
+
DataStatus INT
|
|
1196
|
+
TradeMoney DOUBLE
|
|
1197
|
+
TradeBSFlag SYMBOL
|
|
1198
|
+
BizIndex LONG
|
|
1199
|
+
OrderKind SYMBOL
|
|
1200
|
+
)
|
|
1201
|
+
partitioned by TradeDate, SecurityID,
|
|
1202
|
+
sortColumns=[`SecurityID,`TradeTime],
|
|
1203
|
+
keepDuplicates=ALL
|
|
1204
|
+
```
|
|
1205
|
+
|
|
1206
|
+
由于逐笔数据很大,本节仅模拟 3 日的数据作为示例。模拟数据生成 csv 文件,脚本如下:
|
|
1207
|
+
|
|
1208
|
+
```dolphindb
|
|
1209
|
+
dates = getMarketCalendar('XSHE', 2022.01.01, 2022.01.06)
|
|
1210
|
+
|
|
1211
|
+
path = "<YOUR_PATH>/tradeData/"
|
|
1212
|
+
for(i in 0:dates.size()){
|
|
1213
|
+
saveText(stockTrade(tradeDate=dates[i], securityNumber=500), path + string(dates[i]) + ".csv")
|
|
1214
|
+
}
|
|
1215
|
+
```
|
|
1216
|
+
|
|
1217
|
+

|
|
1218
|
+
|
|
1219
|
+
如果需要将此类大文本文件加载到分布式表, 除了使用 `loadTextEx` 函数进行加载外(见 4.2.1
|
|
1220
|
+
节的例子),还可以使用 `textChunkDS` 函数将文本文件根据指定大小划分为多个小文件数据源,再通过
|
|
1221
|
+
`mr` 函数写入到数据库中。
|
|
1222
|
+
|
|
1223
|
+
`mr`+`textChunkDs` 和
|
|
1224
|
+
`loadTextEx` 都是分块读文件然后写入数据库,和 `loadTextEx`
|
|
1225
|
+
不同的是,`mr+textChunkDs` 可以由用户更灵活的配置拆分的数据源大小。虽然
|
|
1226
|
+
`mr`
|
|
1227
|
+
函数支持按照数据源并发进行写入,但是由于数据源是按照文件大小划分而非分区列,如果直接并行执行写会造成分区冲突,所以需要配置
|
|
1228
|
+
*parallel* 参数为 false,使数据源间串行执行写入,避免写入冲突。
|
|
1229
|
+
|
|
1230
|
+
以单个大文件导入为例,首先使用 `textChunkDS` 函数将大文件拆分成多个小的数据源,然后使用
|
|
1231
|
+
`mr` 函数将数据源写入数据库,此处指定 *mapFunc* 设置为写数据库函数,可以是
|
|
1232
|
+
`append!` 或者 `tableInsert`。
|
|
1233
|
+
|
|
1234
|
+
```dolphindb
|
|
1235
|
+
ds = textChunkDS(fileName=dataPath+file_list[0], chunkSize=512, schema=schema)
|
|
1236
|
+
mr(ds, tableInsert{loadTable(dbName, tbName)}, parallel=false)
|
|
1237
|
+
```
|
|
1238
|
+
|
|
1239
|
+
最后验证写入的数据量是否和原数据量一致:
|
|
1240
|
+
|
|
1241
|
+
```dolphindb
|
|
1242
|
+
exec count(*) from loadTable(dbName, tbName)
|
|
1243
|
+
// output: 14,401,000
|
|
1244
|
+
```
|
|
1245
|
+
|
|
1246
|
+
### 4.3 数据预处理
|
|
1247
|
+
|
|
1248
|
+
很多场景下,数据入库前需要进行预处理操作,包括:
|
|
1249
|
+
|
|
1250
|
+
- **类型转换**:将时间类型转换成 DolphinDB 可以识别的格式;格式化小数数值等
|
|
1251
|
+
- **字段处理**:合并多个字段、过滤掉不必要的字段、将字段重排序、增加字段等
|
|
1252
|
+
- **记录处理:**对记录进行异常值过滤;跳过、过滤部分记录等
|
|
1253
|
+
|
|
1254
|
+
下文将场景结合具体的案例进行说明。
|
|
1255
|
+
|
|
1256
|
+
#### 4.3.1 时间类型解析
|
|
1257
|
+
|
|
1258
|
+
**场景 1**:文本文件存储的时间戳格式是 “20230101090001300”。
|
|
1259
|
+
|
|
1260
|
+
模拟数据下载链接:[MinuteKLine.csv](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/MinuteKLine.csv)
|
|
1261
|
+
|
|
1262
|
+
部分数据展示:
|
|
1263
|
+
|
|
1264
|
+
```dolphindb
|
|
1265
|
+
securityid,tradetime,open,close,high,low,vol,val,vwap
|
|
1266
|
+
000001,20220104093000000,85.172409680671989,88.88322226820837,85.607211456168442,84.836089657153934,11823,1050866.336877027526497,88.88322226820837
|
|
1267
|
+
000001,20220104093100000,85.172409680671989,88.88322226820837,85.607211456168442,84.836089657153934,11823,1050866.336877027526497,88.88322226820837
|
|
1268
|
+
000001,20220104093200000,44.614620972424745,47.569264134165443,44.741714544594287,42.879966530017554,96059,4569455.943463798612356,47.569264134165443
|
|
1269
|
+
000001,20220104093300000,44.614620972424745,47.569264134165443,44.741714544594287,42.879966530017554,96059,4569455.943463798612356,47.569264134165443
|
|
1270
|
+
...
|
|
1271
|
+
```
|
|
1272
|
+
|
|
1273
|
+
如果直接使用 `loadText` 函数或者 `loadTextEx` 函数导入数据,则
|
|
1274
|
+
tradeTime 字段无法被识别为时间戳。
|
|
1275
|
+
|
|
1276
|
+
```dolphindb
|
|
1277
|
+
dataPath = "<YOUR_PATH>/MinuteKLine.csv"
|
|
1278
|
+
kline = loadText(dataPath)
|
|
1279
|
+
kline.schema().colDefs
|
|
1280
|
+
|
|
1281
|
+
/* output:
|
|
1282
|
+
name typeString typeInt extra comment
|
|
1283
|
+
---------- ---------- ------- ----- -------
|
|
1284
|
+
securityid SYMBOL 17
|
|
1285
|
+
tradetime LONG 5
|
|
1286
|
+
open DOUBLE 16
|
|
1287
|
+
close DOUBLE 16
|
|
1288
|
+
high DOUBLE 16
|
|
1289
|
+
low DOUBLE 16
|
|
1290
|
+
vol INT 4
|
|
1291
|
+
val DOUBLE 16
|
|
1292
|
+
vwap DOUBLE 16
|
|
1293
|
+
*/
|
|
1294
|
+
```
|
|
1295
|
+
|
|
1296
|
+
我们可以参考前文的导入案例,尝试为导入设置 *schema* 参数,测试是否能正确解析。
|
|
1297
|
+
|
|
1298
|
+
```dolphindb
|
|
1299
|
+
schema = extractTextSchema(dataPath)
|
|
1300
|
+
update schema set type = "TIMESTAMP" where name = "tradetime"
|
|
1301
|
+
kline = loadText(dataPath, schema=schema)
|
|
1302
|
+
|
|
1303
|
+
// 查看表的类型
|
|
1304
|
+
kline.schema().colDefs
|
|
1305
|
+
/* output:
|
|
1306
|
+
name typeString typeInt extra comment
|
|
1307
|
+
---------- ---------- ------- ----- -------
|
|
1308
|
+
securityid SYMBOL 17
|
|
1309
|
+
tradetime TIMESTAMP 12
|
|
1310
|
+
open DOUBLE 16
|
|
1311
|
+
close DOUBLE 16
|
|
1312
|
+
high DOUBLE 16
|
|
1313
|
+
low DOUBLE 16
|
|
1314
|
+
vol INT 4
|
|
1315
|
+
val DOUBLE 16
|
|
1316
|
+
vwap DOUBLE 16
|
|
1317
|
+
*/
|
|
1318
|
+
|
|
1319
|
+
// 查询一条数据
|
|
1320
|
+
select top 1 * from kline
|
|
1321
|
+
/* output:
|
|
1322
|
+
securityid tradetime open close high low vol ...
|
|
1323
|
+
---------- ----------------------- ------------------ ----------------- ------------------ ------------------ ----- ---
|
|
1324
|
+
000001 2022.01.04T09:30:00.000 85.172409680672004 88.88322226820837 85.607211456168442 84.836089657153934 11823 ...
|
|
1325
|
+
*/
|
|
1326
|
+
```
|
|
1327
|
+
|
|
1328
|
+
可以发现通过修改 *schema*, 系统可以自动解析此类 LONG 类型的时间戳。但是并不是所有时间戳格式,DolphinDB
|
|
1329
|
+
内部都做了自动匹配,例如场景 2。
|
|
1330
|
+
|
|
1331
|
+
**场景 2**:文本文件存储的时间戳格式是 “09:00:01:300 21/01/2023”。
|
|
1332
|
+
|
|
1333
|
+
模拟数据下载链接:[MinuteKLine\_1.csv](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/MinuteKLine_1.csv)
|
|
1334
|
+
|
|
1335
|
+
数据展示:
|
|
1336
|
+
|
|
1337
|
+
```dolphindb
|
|
1338
|
+
securityid,tradetime,open,close,high,low,vol,val,vwap
|
|
1339
|
+
000001,09:30:00.000 04/01/2022,71.402596682310104,73.259566984725012,71.99277468281798,70.358094742754474,71231,5218352.215888947248458,73.259566984725012
|
|
1340
|
+
000001,09:31:00.000 04/01/2022,71.402596682310104,73.259566984725012,71.99277468281798,70.358094742754474,71231,5218352.215888947248458,73.259566984725012
|
|
1341
|
+
000001,09:32:00.000 04/01/2022,49.951133667491376,46.830399985240049,50.527059993706643,50.500124022830277,50228,2352197.330458637326955,46.830399985240049
|
|
1342
|
+
000001,09:33:00.000 04/01/2022,49.951133667491376,46.830399985240049,50.527059993706643,50.500124022830277,50228,2352197.330458637326955,46.830399985240049
|
|
1343
|
+
...
|
|
1344
|
+
```
|
|
1345
|
+
|
|
1346
|
+
直接使用 `loadText` 函数,并设置正确的 *schema* 参数进行数据导入。
|
|
1347
|
+
|
|
1348
|
+
```dolphindb
|
|
1349
|
+
dataPath = "<YOUR_PATH>/MinuteKLine_1.csv"
|
|
1350
|
+
schema = extractTextSchema(dataPath)
|
|
1351
|
+
update schema set type = "TIMESTAMP" where name = "tradetime"
|
|
1352
|
+
kline=loadText(dataPath, schema=schema)
|
|
1353
|
+
|
|
1354
|
+
select top 5 * from kline
|
|
1355
|
+
|
|
1356
|
+
/* output:
|
|
1357
|
+
securityid tradetime open close high low vol ...
|
|
1358
|
+
---------- --------- ------------------ ------------------ ------------------ ------------------ ----- ---
|
|
1359
|
+
000001 71.40259668231009 73.259566984725012 71.99277468281798 70.358094742754474 71231 ...
|
|
1360
|
+
000001 71.40259668231009 73.259566984725012 71.99277468281798 70.358094742754474 71231 ...
|
|
1361
|
+
000001 49.951133667491376 46.830399985240049 50.527059993706636 50.500124022830277 50228 ...
|
|
1362
|
+
000001 49.951133667491376 46.830399985240049 50.527059993706636 50.500124022830277 50228 ...
|
|
1363
|
+
000001 66.079958924092352 64.834977746015866 66.389338146662339 65.51682344241999 8487 ...
|
|
1364
|
+
*/
|
|
1365
|
+
```
|
|
1366
|
+
|
|
1367
|
+
可以发现虽然导入没有报错,但是最终导入的时间列都变成了空值。为了处理这种情况,可以先将时间字段以字符串形式导入,再使用
|
|
1368
|
+
`temporalParse`
|
|
1369
|
+
函数对时间列进行预处理。这里按照**内存表**和**分布式表**分开讨论。
|
|
1370
|
+
|
|
1371
|
+
(1)对于内存表,先将数据导入内存,再修改时间字段即可。
|
|
1372
|
+
|
|
1373
|
+
```dolphindb
|
|
1374
|
+
schema = extractTextSchema(dataPath)
|
|
1375
|
+
update schema set type = "STRING" where name = "tradetime"
|
|
1376
|
+
kline=loadText(dataPath, schema=schema)
|
|
1377
|
+
kline.replaceColumn!("tradetime", kline.tradetime.temporalParse("HH:mm:ss.SSS dd/MM/yyyy"))
|
|
1378
|
+
|
|
1379
|
+
kline.schema().colDefs
|
|
1380
|
+
/* output:
|
|
1381
|
+
name typeString typeInt extra comment
|
|
1382
|
+
---------- ---------- ------- ----- -------
|
|
1383
|
+
securityid SYMBOL 17
|
|
1384
|
+
tradetime TIMESTAMP 12
|
|
1385
|
+
open DOUBLE 16
|
|
1386
|
+
close DOUBLE 16
|
|
1387
|
+
high DOUBLE 16
|
|
1388
|
+
low DOUBLE 16
|
|
1389
|
+
vol INT 4
|
|
1390
|
+
val DOUBLE 16
|
|
1391
|
+
vwap DOUBLE 16
|
|
1392
|
+
*/
|
|
1393
|
+
|
|
1394
|
+
select top 1 * from kline
|
|
1395
|
+
/* output:
|
|
1396
|
+
securityid tradetime open close high low vol ...
|
|
1397
|
+
---------- ----------------------- ----------------- ------------------ ----------------- ------------------ ----- ---
|
|
1398
|
+
000001 2022.01.04T09:30:00.000 71.40259668231009 73.259566984725012 71.99277468281798 70.358094742754474 71231 ...
|
|
1399
|
+
*/
|
|
1400
|
+
```
|
|
1401
|
+
|
|
1402
|
+
(2)对于分布式表,使用 `loadTextEx` 进行数据导入,在参数 *transform*指定的函数中定义字段转换逻辑即可。
|
|
1403
|
+
|
|
1404
|
+
建库建表脚本如下:
|
|
1405
|
+
|
|
1406
|
+
```dolphindb
|
|
1407
|
+
create database "dfs://k_minute_level"
|
|
1408
|
+
partitioned by VALUE(2020.01.01..2021.01.01)
|
|
1409
|
+
engine='OLAP'
|
|
1410
|
+
|
|
1411
|
+
create table "dfs://k_minute_level"."k_minute"(
|
|
1412
|
+
securityid SYMBOL
|
|
1413
|
+
tradetime TIMESTAMP
|
|
1414
|
+
open DOUBLE
|
|
1415
|
+
close DOUBLE
|
|
1416
|
+
high DOUBLE
|
|
1417
|
+
low DOUBLE
|
|
1418
|
+
vol INT
|
|
1419
|
+
val DOUBLE
|
|
1420
|
+
vwap DOUBLE
|
|
1421
|
+
)
|
|
1422
|
+
partitioned by tradetime
|
|
1423
|
+
```
|
|
1424
|
+
|
|
1425
|
+
数据导入脚本如下:
|
|
1426
|
+
|
|
1427
|
+
```dolphindb
|
|
1428
|
+
schema = extractTextSchema(dataPath)
|
|
1429
|
+
update schema set type = "STRING" where name = "tradetime"
|
|
1430
|
+
|
|
1431
|
+
// 时间字段转换函数定义
|
|
1432
|
+
def transfunc(mutable msg){
|
|
1433
|
+
msg.replaceColumn!("tradetime", msg.tradetime.temporalParse("HH:mm:ss.SSS dd/MM/yyyy"))
|
|
1434
|
+
return msg
|
|
1435
|
+
}
|
|
1436
|
+
kline = loadTextEx(dbHandle=database("dfs://k_minute_level"), tableName="k_minute", partitionColumns="tradetime", filename=dataPath, schema=schema, transform=transfunc)
|
|
1437
|
+
|
|
1438
|
+
// 查询一条数据验证导入结果
|
|
1439
|
+
select top 1 * from loadTable("dfs://k_minute_level", "k_minute")
|
|
1440
|
+
|
|
1441
|
+
/* output:
|
|
1442
|
+
securityid tradetime open close high low vol ...
|
|
1443
|
+
---------- ----------------------- ----------------- ------------------ ----------------- ------------------ ----- ---
|
|
1444
|
+
000001 2022.01.04T09:30:00.000 71.40259668231009 73.259566984725012 71.99277468281798 70.358094742754474 71231 ...
|
|
1445
|
+
*/
|
|
1446
|
+
```
|
|
1447
|
+
|
|
1448
|
+
#### 4.3.2 增加、删除、重排序、合并字段后导入数据
|
|
1449
|
+
|
|
1450
|
+
**数据导入函数 loadTextEx**
|
|
1451
|
+
|
|
1452
|
+
`loadTextEx`
|
|
1453
|
+
是数据导入场景最常用的函数。导入文本文件到分布式表时,不论是修改字段类型、增删字段、记录修改都可以利用
|
|
1454
|
+
`loadTextEx` 函数搭配 *transform* 参数指定的函数来定义数据处理逻辑。此外,
|
|
1455
|
+
`loadTextEx` 函数还有其他一些功能参数配置可以辅助系统更好地解析和导入数据:
|
|
1456
|
+
|
|
1457
|
+
- **skipRows** 指定导入时从文件头开始忽略的行数
|
|
1458
|
+
- **delimiter** 数据文件中各列的分隔符
|
|
1459
|
+
- **containHeader** 表示数据文件是否包含标题行
|
|
1460
|
+
- 数组向量解析相关配置:
|
|
1461
|
+
- **arrayDelimiter** 数据文件中数组向量列的分隔符
|
|
1462
|
+
- **arrayMarker** 表示数组向量左右边界的标识符
|
|
1463
|
+
|
|
1464
|
+
使用 `loadTextEx` 导入数据到分布式表的整体逻辑如下图所示:
|
|
1465
|
+
|
|
1466
|
+

|
|
1467
|
+
|
|
1468
|
+
表 4-2 字段处理相关函数
|
|
1469
|
+
|
|
1470
|
+
| **功能** | **函数** |
|
|
1471
|
+
| --- | --- |
|
|
1472
|
+
| 字段删除 | [dropColumns!](../funcs/d/dropColumns_.html) |
|
|
1473
|
+
| 字段替换 | [replaceColumn!](../funcs/r/replaceColumn_.html) |
|
|
1474
|
+
| 字段增加 | [addColumn](../funcs/a/addColumn.html) |
|
|
1475
|
+
| 字段重命名 | [rename!](../funcs/r/rename_.html) |
|
|
1476
|
+
| 字段重排序 | [reorderColumns!](../funcs/r/reorderColumns_.html) |
|
|
1477
|
+
| 字段注释 | [setColumnComment](../funcs/s/setColumnComment.html) |
|
|
1478
|
+
|
|
1479
|
+
下面结合具体的案例来对该函数的使用进行一个理解和巩固。
|
|
1480
|
+
|
|
1481
|
+
**场景 1**:导入时增加字段。每个股票每天一个文件,文件名为
|
|
1482
|
+
“股票代码.csv”。但是每个股票的数据内没有存储股票字段,导入数据时希望能够通过读文件名,将股票代码的信息也补充进去。
|
|
1483
|
+
|
|
1484
|
+
模拟一天 10 个股票数据进行说明,模拟数据下载链接:[snapForDataProcess.zip](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/snapForDataProcess.zip)
|
|
1485
|
+
|
|
1486
|
+
本场景同样使用 `loadTextEx` 函数搭配 *transform*
|
|
1487
|
+
转换函数即可实现。为了方便说明,本节不考虑小文件合并的问题(具体参考 4.2.2 的示例),而是直接遍历每个文件导入数据库。建库建表代码参考 3.3
|
|
1488
|
+
节。
|
|
1489
|
+
|
|
1490
|
+
```dolphindb
|
|
1491
|
+
// 通过文件名提取股票代码
|
|
1492
|
+
dataPath = "<YOUR_PATH>/snapPerStockWithoutSid/"
|
|
1493
|
+
file_list = files(dataPath).filename
|
|
1494
|
+
sids = file_list.split(".")[0]
|
|
1495
|
+
|
|
1496
|
+
// 设置导入数据的 schema
|
|
1497
|
+
// 注意此处的 schema 是导入数据的格式,不等于导入的数据表的 schema
|
|
1498
|
+
schema = select name, typeString as type from loadTable("dfs://stock_lv2_snapshot", "snapshot").schema().colDefs where name != "SecurityID"
|
|
1499
|
+
|
|
1500
|
+
// 转换函数定义
|
|
1501
|
+
def transFunc(mutable msg, sid, orderCols){
|
|
1502
|
+
// step1. 增加 securityId 字段
|
|
1503
|
+
data = select sid as SecurityID, * from msg
|
|
1504
|
+
// step2. 将表字段重排序和分布式表对齐
|
|
1505
|
+
data.reorderColumns!(orderCols)
|
|
1506
|
+
return data
|
|
1507
|
+
}
|
|
1508
|
+
|
|
1509
|
+
// 字段排序的依据
|
|
1510
|
+
orderCols = loadTable("dfs://stock_lv2_snapshot", "snapshot").schema().colDefs.name
|
|
1511
|
+
|
|
1512
|
+
// 循环导入文件
|
|
1513
|
+
for(i in 0:sids.size()){
|
|
1514
|
+
loadTextEx(dbHandle=database("dfs://stock_lv2_snapshot"), tableName="snapshot", partitionColumns=["TradeDate", "SecurityID"], filename=dataPath + file_list[i], schema=schema, sortColumns=["SecurityID", "TradeDate"], transform=transFunc{, sid[i], orderCols})
|
|
1515
|
+
}
|
|
1516
|
+
|
|
1517
|
+
// 检验数据是否导入完成
|
|
1518
|
+
exec count(*) from loadTable("dfs://stock_lv2_snapshot", "snapshot")
|
|
1519
|
+
// output: 48,020
|
|
1520
|
+
```
|
|
1521
|
+
|
|
1522
|
+
注:
|
|
1523
|
+
|
|
1524
|
+
由于 *transForm* 参数仅接受指定的函数为一元函数,本脚本
|
|
1525
|
+
`transform=transFunc{, sid[i], orderCols}` 使用部分应用固定了 sid
|
|
1526
|
+
和 orderCols 参数,使之成为一个一元函数。
|
|
1527
|
+
|
|
1528
|
+
**场景 2**:原快照数据中的多档价格存储在不同的字段,需要在导入时将其合并为数组向量。
|
|
1529
|
+
|
|
1530
|
+
模拟一天 10 个股票的快照数据进行说明,模拟数据下载链接:[snapshot\_array.csv](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/snapshot_array.csv)
|
|
1531
|
+
|
|
1532
|
+
本场景还是沿用 3.3 节创建的快照库表作为导入的分布式表。在导入前需要根据预先设计的字段类型对 schema 进行调整。
|
|
1533
|
+
|
|
1534
|
+
```dolphindb
|
|
1535
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
1536
|
+
tbName = "snapshot"
|
|
1537
|
+
dataPath = "<YOUR_PATH>/snapshot_array.csv"
|
|
1538
|
+
|
|
1539
|
+
schema = extractTextSchema(dataPath)
|
|
1540
|
+
update schema set type="LONG" where name in ["NumTrades", "TotalValueTrade", "TotalBidQty", "TotalOfferQty", "ETFBuyAmount", "ETFSellAmount", "WithdrawBuyAmount", "WithdrawSellAmount"] or regexFind(name, "[bid|offer]Order[0-9]{1,2}") >= 0
|
|
1541
|
+
```
|
|
1542
|
+
|
|
1543
|
+
最方便灵活的方法是直接通过 select 对数据字段进行处理,此处使用了 `fixedLengthArrayVector`
|
|
1544
|
+
函数搭配字段序列(…) 将多列合并成一列数组向量。
|
|
1545
|
+
|
|
1546
|
+
```dolphindb
|
|
1547
|
+
def transFunc(mutable msg){
|
|
1548
|
+
return select TradeDate, TradeTime, MDStreamID, Securityid, SecurityIDSource, TradingPhaseCode, ImageStatus,
|
|
1549
|
+
PreCloPrice, NumTrades,TotalVolumeTrade, TotalValueTrade, LastPrice, OpenPrice, HighPrice, LowPrice, ClosePrice,
|
|
1550
|
+
DifPrice1, DifPrice2, PE1, PE2, PreCloseIOPV, IOPV, TotalBidQty, WeightedAvgBidPx, AltWAvgBidPri, TotalOfferQty,
|
|
1551
|
+
WeightedAvgOfferPx, AltWAvgAskPri, UpLimitPx, DownLimitPx, OpenInt, OptPremiumRatio,
|
|
1552
|
+
fixedLengthArrayVector(offerPx1...offerPx10) as offerPx, fixedLengthArrayVector(bidPx1...bidPx10) as bidPx,
|
|
1553
|
+
fixedLengthArrayVector(offerOrderQty1...offerOrderQty10) as offerOrderQty,
|
|
1554
|
+
fixedLengthArrayVector(bidOrderQty1...bidOrderQty10) as bidOrderQty,
|
|
1555
|
+
fixedLengthArrayVector(bidNumOrders1...bidNumOrders10) as bidNumOrders,
|
|
1556
|
+
fixedLengthArrayVector(offerNumOrders1...offerNumOrders10) as offerNumOrders,
|
|
1557
|
+
ETFBuyNumber, ETFBuyAmount, ETFBuyMoney, ETFSellNumber, ETFSellAmount, ETFSellMoney, YieldToMatu, TotWarExNum,
|
|
1558
|
+
WithdrawBuyNumber, WithdrawBuyAmount, WithdrawBuyMoney, WithdrawSellNumber, WithdrawSellAmount, WithdrawSellMoney,
|
|
1559
|
+
TotalBidNumber, TotalOfferNumber, MaxBidDur, MaxSellDur, BidNum, SellNum, LocalTime, SeqNo,
|
|
1560
|
+
fixedLengthArrayVector(offerOrder1...offerOrder10) as offerOrder,
|
|
1561
|
+
fixedLengthArrayVector(bidOrder1...bidOrder10) as bidOrder
|
|
1562
|
+
from msg
|
|
1563
|
+
}
|
|
1564
|
+
|
|
1565
|
+
loadTextEx(dbHandle=database(dbName), tableName=tbName, partitionColumns=["TradeTime", "SecurityID"], filename=dataPath, schema=schema, sortColumns=["SecurityID", "TradeTime"], transform=transFunc)
|
|
1566
|
+
```
|
|
1567
|
+
|
|
1568
|
+
还有一个比较有技巧的方式是通过 update
|
|
1569
|
+
先将多列合并后的字段并入表内,然后为了保持字段顺序不变,将原属性的第一列字段替换为同属性的数组向量字段,最后删除多余的字段。该逻辑对于的转换函数如下:
|
|
1570
|
+
|
|
1571
|
+
```dolphindb
|
|
1572
|
+
def transFunc1(mutable msg){
|
|
1573
|
+
update msg set offerPx = fixedLengthArrayVector(offerPx1...offerPx10), bidPx = fixedLengthArrayVector(bidPx1...bidPx10),
|
|
1574
|
+
offerOrderQty = fixedLengthArrayVector(offerOrderQty1...offerOrderQty10),
|
|
1575
|
+
bidOrderQty = fixedLengthArrayVector(bidOrderQty1...bidOrderQty10),
|
|
1576
|
+
bidNumOrders = fixedLengthArrayVector(bidNumOrders1...bidNumOrders10),
|
|
1577
|
+
offerNumOrders = fixedLengthArrayVector(offerNumOrders1...offerNumOrders10),
|
|
1578
|
+
offerOrder = fixedLengthArrayVector(offerOrder1...offerOrder10),
|
|
1579
|
+
bidOrder = fixedLengthArrayVector(bidOrder1...bidOrder10)
|
|
1580
|
+
|
|
1581
|
+
arrayCols = ["offerPx", "bidPx", "offerOrderQty", "bidOrderQty", "bidNumOrders", "offerNumOrders", "offerOrder", "bidOrder"]
|
|
1582
|
+
each(replaceColumn!{msg}, arrayCols + "1", msg[arrayCols])
|
|
1583
|
+
dropCols = cross(+, arrayCols, NULL join string(2..10)).flatten().flatten()
|
|
1584
|
+
msg.dropColumns!(dropCols)
|
|
1585
|
+
|
|
1586
|
+
return msg
|
|
1587
|
+
}
|
|
1588
|
+
```
|
|
1589
|
+
|
|
1590
|
+
#### 4.3.3 导入数据包含中文导致乱码
|
|
1591
|
+
|
|
1592
|
+
**场景**:导入包含中文字段的 csv 文件(采用 GBK 编码)。
|
|
1593
|
+
|
|
1594
|
+
模拟数据下载链接:[GPLIST\_gbk.csv](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/GPLIST_gbk.csv)(来源 [股票与存托凭证 | 上海证券交易所](https://www.sse.com.cn/assortment/stock/list/share/))
|
|
1595
|
+
|
|
1596
|
+
DolphinDB 仅支持导入 UTF8 和 ANSI 编码的文件,如果直接导入 GBK 编码的 csv 文件,在 DolphinDB
|
|
1597
|
+
中会显示为乱码数据。
|
|
1598
|
+
|
|
1599
|
+
```dolphindb
|
|
1600
|
+
dataPath = "<YOUR_PATH>/GPLIST_gbk.csv"
|
|
1601
|
+
t = loadText(dataPath)
|
|
1602
|
+
t
|
|
1603
|
+
/* output:
|
|
1604
|
+
A�ɴ��� B�ɴ��� ֤ȯ��� ��λ֤ȯ��� ��˾Ӣ��ȫ�� ��������
|
|
1605
|
+
------- ------- -------- ------------ ------------------------- ----------
|
|
1606
|
+
600000 �ַ����� �ַ����� Shanghai Pudong Develop...1999.11.10
|
|
1607
|
+
600004 ���ƻ��� ���ƻ��� Guangzhou Baiyun Intern...2003.04.28
|
|
1608
|
+
600006 ����ɷ� ����ɷ� DONGFENG AUTOMOBILE CO....1999.07.27
|
|
1609
|
+
600007 �й���ó �й���ó China World Trade Cente...1999.03.12
|
|
1610
|
+
600008 �״����� �״����� BEIJING CAPITAL ECO-ENV...2000.04.27
|
|
1611
|
+
...
|
|
1612
|
+
*/
|
|
1613
|
+
```
|
|
1614
|
+
|
|
1615
|
+
此时就需要将数据进行一个编码转换,可以借助第三方平台将文件编码进行转换,或在导入时借助 DolphinDB 的内置函数 convertEncode 和
|
|
1616
|
+
toUTF8 函数进行转换。
|
|
1617
|
+
|
|
1618
|
+
```dolphindb
|
|
1619
|
+
dataPath = "<YOUR_PATH>/GPLIST_gbk.csv"
|
|
1620
|
+
schema = extractTextSchema(dataPath)
|
|
1621
|
+
update schema set name = toUTF8(name, "gbk")
|
|
1622
|
+
update schema set type = "SYMBOL" where name like "%代码%"
|
|
1623
|
+
|
|
1624
|
+
t = loadText(dataPath, schema=schema)
|
|
1625
|
+
t = toUTF8(t, "gbk")
|
|
1626
|
+
t
|
|
1627
|
+
|
|
1628
|
+
/* output:
|
|
1629
|
+
A股代码 B股代码 证券简称 扩位证券简称 公司英文全称 上市日期
|
|
1630
|
+
---------- ---------- ------------ ------------------ ------------------------- ------------
|
|
1631
|
+
600000 - 浦发银行 浦发银行 Shanghai Pudong Develop...1999.11.10
|
|
1632
|
+
600004 - 白云机场 白云机场 Guangzhou Baiyun Intern...2003.04.28
|
|
1633
|
+
600006 - 东风股份 东风股份 DONGFENG AUTOMOBILE CO....1999.07.27
|
|
1634
|
+
600007 - 中国国贸 中国国贸 China World Trade Cente...1999.03.12
|
|
1635
|
+
600008 - 首创环保 首创环保 BEIJING CAPITAL ECO-ENV...2000.04.27
|
|
1636
|
+
600009 - 上海机场 上海机场 Shanghai International ...1998.02.18
|
|
1637
|
+
600010 - 包钢股份 包钢股份 Inner Mongolia Baotou S...2001.03.09
|
|
1638
|
+
600011 - 华能国际 华能国际 Huaneng Power Internati...2001.12.06
|
|
1639
|
+
*/
|
|
1640
|
+
```
|
|
1641
|
+
|
|
1642
|
+
### 4.4 常见问题
|
|
1643
|
+
|
|
1644
|
+
**1. 由于内存溢出无法写入/查询?**
|
|
1645
|
+
|
|
1646
|
+
如果是社区版本,由于 8G 的内存限制,在导入时可能会出现内存溢出的情况。此时,`getRecentJob` 的 errorMsg
|
|
1647
|
+
字段可能会出现以下报错:
|
|
1648
|
+
|
|
1649
|
+
```dolphindb
|
|
1650
|
+
loadDataByDay: loadTextEx(database(dbName), tbName, ["TradeDate","SecurityID"], fileName, , schema, , , ["SecurityID","TradeTime"]) => Out of memory
|
|
1651
|
+
loadDataByDay: loadTextEx(database(dbName), tbName, ["TradeDate","SecurityID"], fileName, , schema, , , ["SecurityID","TradeTime"]) => [appendDFSTablet] Failed to save table on data node, with error: Out of memory. RefId:S01077
|
|
1652
|
+
```
|
|
1653
|
+
|
|
1654
|
+
若发生溢出情况,可以提前结束其他任务:
|
|
1655
|
+
|
|
1656
|
+
```dolphindb
|
|
1657
|
+
// 取消单机的后台作业
|
|
1658
|
+
cancelJob(getRecentJob(242).jobId)
|
|
1659
|
+
|
|
1660
|
+
// 取消集群节点上所有后台作业
|
|
1661
|
+
use ops
|
|
1662
|
+
cancelJobEx()
|
|
1663
|
+
```
|
|
1664
|
+
|
|
1665
|
+
为了能弄清楚造成溢出的原因,我们逐步进行排查。本教程仅列出基础的排查方式,详细内容参考 [Out of Memory](oom_settlement.html) 。
|
|
1666
|
+
|
|
1667
|
+
内存占用的对象包括:临时变量、读写缓存、元数据缓存等等。
|
|
1668
|
+
|
|
1669
|
+
- 临时变量占用内存量
|
|
1670
|
+
|
|
1671
|
+
获取内存中当前所有临时变量的内存占用(单位:MB)。
|
|
1672
|
+
|
|
1673
|
+
```dolphindb
|
|
1674
|
+
tempVarSize = exec sum(bytes) \ 1024 \ 1024 from objs(true)
|
|
1675
|
+
```
|
|
1676
|
+
|
|
1677
|
+
清除不必要的临时变量,可以通过
|
|
1678
|
+
undef
|
|
1679
|
+
函数进行操作。
|
|
1680
|
+
|
|
1681
|
+
```dolphindb
|
|
1682
|
+
undef(obj, [objType=VAR]) // 清除某个变量
|
|
1683
|
+
undef all // 清除所有变量
|
|
1684
|
+
```
|
|
1685
|
+
- 缓存占用内存量
|
|
1686
|
+
|
|
1687
|
+
获取所有缓存的内存占用(单位:B)。
|
|
1688
|
+
|
|
1689
|
+
```dolphindb
|
|
1690
|
+
getSessionMemoryStat()
|
|
1691
|
+
```
|
|
1692
|
+
|
|
1693
|
+

|
|
1694
|
+
|
|
1695
|
+
对缓存进行清理。每类缓存对应的清理方法如下表所示:
|
|
1696
|
+
|
|
1697
|
+
表 4-3 系统缓存类型及其对应的清理方式
|
|
1698
|
+
|
|
1699
|
+
| **缓存类型** | **清理方式** | **说明** |
|
|
1700
|
+
| --- | --- | --- |
|
|
1701
|
+
| \_\_DimensionalTable\_\_ | 暂时没有接口 | |
|
|
1702
|
+
| \_\_SharedTable\_\_ | `undef("sharedTableName", SHARED)` | 清理共享表变量 |
|
|
1703
|
+
| \_\_OLAPTablet\_\_ | `clearAllCache()` | 清理查询数据缓存 |
|
|
1704
|
+
| \_\_OLAPCacheEngine \_\_ | `flushOLAPCache()` | 将写入 OLAP Cache Engine 缓存的数据强行刷盘 |
|
|
1705
|
+
| \_\_OLAPCachedSymbolBase\_\_ | 无需释放 | |
|
|
1706
|
+
| \_\_DFSMetadata\_\_ | 无需释放 | |
|
|
1707
|
+
| \_\_TSDBCacheEngine\_\_ | `flushTSDBCache()` | 将写入 TSDB Cache Engine 缓存的数据强行刷盘 |
|
|
1708
|
+
| \_\_TSDBLevelFileIndex\_\_ | `invalidateLevelIndexCache()` | 将 TSDB 表缓存的索引强制清理 |
|
|
1709
|
+
| \_\_TSDBCachedSymbolBase\_\_ | 无需释放 | |
|
|
1710
|
+
| \_\_StreamingPubQueue\_\_ | 无需释放 | |
|
|
1711
|
+
| \_\_StreamingSubQueue\_\_ | 管理订阅以及引擎 | |
|
|
1712
|
+
|
|
1713
|
+
- 其他内存占用排查方式
|
|
1714
|
+
|
|
1715
|
+
如果清理缓存和清理临时变量后仍然无法解决问题,那么可以参照下述方法进行检查:
|
|
1716
|
+
|
|
1717
|
+
(1)内存、缓存相关的配置项是否设置合理,下面列举部分可能造成内存大量占用的场景。
|
|
1718
|
+
|
|
1719
|
+
内存相关配置请参照
|
|
1720
|
+
[功能配置](../db_distr_comp/cfg/function_configuration.html) 内存、系统内存、Cache Engine 小节。
|
|
1721
|
+
|
|
1722
|
+
表 4-4 TSDB
|
|
1723
|
+
内存相关配置项
|
|
1724
|
+
|
|
1725
|
+
| **配置项** | **场景说明** | **解决方案** |
|
|
1726
|
+
| --- | --- | --- |
|
|
1727
|
+
| TSDBCacheEngineSize | TSDB Cache Engine 写满刷盘后,系统会重新开辟一个新的 Cache Engine 内存供其他事务写入,从而造成内存膨胀 | 尝试调小 TSDBCacheEngineSize,或者调大 maxMemSize(社区版受到单节点 8G 限制) |
|
|
1728
|
+
| TSDBLevelFileIndexCacheSize | TSDB 的 Level File 索引会在查询时载入内存进行缓存 | 尝试调小 TSDBLevelFileIndexCacheSize ,同时检查一下 sortColumns 字段是否设置合理,造成索引膨胀 |
|
|
1729
|
+
|
|
1730
|
+
(2)数据库分区或索引等配置不合理导致元数据爆炸。下表列举了几个可能的场景:
|
|
1731
|
+
|
|
1732
|
+
表 4-5 导致内存中元数据膨胀的场景
|
|
1733
|
+
|
|
1734
|
+
| **排查方向** | **具体说明** |
|
|
1735
|
+
| --- | --- |
|
|
1736
|
+
| TSDB 引擎场景下,sortColumns 设置是否合理 | 如果 sortKey 数量很大,会占用大量内存和磁盘空间。测试案例可参考 [TSDB 存储引擎详解](tsdb_explained.html#51-sortkey-%E6%95%B0%E9%87%8F%E5%AF%B9%E6%9F%A5%E8%AF%A2%E6%80%A7%E8%83%BD%E7%9A%84%E5%BD%B1%E5%93%8D) 5.1 小节。 |
|
|
1737
|
+
| 创库时分区指定过多,如设置了数万个 HASH 分区,设置了几十年的 VALUE 天分区等 | - VALUE 分区会自动拓展,不需要预设很多; - HASH 分区主要是用在控制分区粒度的场景,一般和 VALUE 或者 RANGE 组合使用,如果设置过多会造成分区数据量很少; - RANGE 分区可以先设置部分,如果超过范围可以通过函数 addRangePartitions 拓展分区。 |
|
|
1738
|
+
|
|
1739
|
+
**2. 写入时报错列字段不一致**,The column [xxx] expects type of DATETIME, but the actual
|
|
1740
|
+
type is DOUBLE.
|
|
1741
|
+
|
|
1742
|
+
**解决方案**:这通常是由于写入数据的字段顺序和表字段的顺序不一致造成的。DolphinDB 不支持表字段根据字段名自动对应,也不支持 insert
|
|
1743
|
+
into 指定字段名进行写入。需要在写入时确保写入数据的类型和字段顺序能够与表定义的顺序完全一致。
|
|
1744
|
+
|
|
1745
|
+
**3. 写入函数执行没有报错,但是数据没有成功写进去。**
|
|
1746
|
+
|
|
1747
|
+
**解决方案**:请检查一下建库时的分区的类型和分区模式。
|
|
1748
|
+
|
|
1749
|
+
如是 VALUE 分区,请检查配置项 newValuePartitionPolicy 是否设置为 add,默认下载的 DolphinDB 配置文件中会设置为
|
|
1750
|
+
add 策略,即 VALUE 分区自动增加;或者调用 [addValuePartitions](../funcs/a/addValuePartitions.html) 手动增加分区。
|
|
1751
|
+
|
|
1752
|
+
配置文件,如下图所示(以单机为例):
|
|
1753
|
+
|
|
1754
|
+

|
|
1755
|
+
|
|
1756
|
+
如是 RANGE 分区,不支持自增,请检查写入数据的范围是否超过了建库时设置的范围,如超过了需要手动调用函数 [addRangePartitions](../funcs/a/addRangePartitions.html)
|
|
1757
|
+
增加分区,然后再写入数据。
|
|
1758
|
+
|
|
1759
|
+
### 4.5 下一步阅读
|
|
1760
|
+
|
|
1761
|
+
- 文本导入:[文本数据导入](../db_distr_comp/db_oper/text_files_import.html)
|
|
1762
|
+
[金融 PoC 用户历史数据导入指导手册之股票
|
|
1763
|
+
Level-2 逐笔篇](LoadDataForPoc.html)
|
|
1764
|
+
- 数据清洗: [利用 DolphinDB
|
|
1765
|
+
高效清洗数据](data_ETL.html)
|
|
1766
|
+
- 行情数据:[easyNSQ
|
|
1767
|
+
实时行情数据接入功能模块](../modules/easyNSQ/easynsq.html)
|
|
1768
|
+
[easyTLDataImport 通联历史数据自动化导入功能模块](../modules/easyTLDataImport/easytl_data_import.html)
|
|
1769
|
+
- 数据迁移和导入插件:[插件](../plugins/plg_intro.html)
|
|
1770
|
+
|
|
1771
|
+
## 5. 数据增删改查
|
|
1772
|
+
|
|
1773
|
+
### 5.1 增加数据
|
|
1774
|
+
|
|
1775
|
+
在 DolphinDB 中可以通过三种方式写入数据,分别为:
|
|
1776
|
+
|
|
1777
|
+
- `tableInsert` 函数(推荐):支持任意表对象的写入,会返回写入的记录数。
|
|
1778
|
+
- `append!` 函数:支持任意表对象的写入,会直接对原表进行修改。
|
|
1779
|
+
- insert into 语句:适合于数据量较少的场景,支持内存表写入;从 3.00.1 版本开始,若配置
|
|
1780
|
+
*enableInsertStatementForDFSTable* 配置项,则 insert into
|
|
1781
|
+
也支持分布式表写入。
|
|
1782
|
+
|
|
1783
|
+
**例:**使用三种方式向快照表里追加股票的数据。
|
|
1784
|
+
|
|
1785
|
+
```dolphindb
|
|
1786
|
+
use MockData
|
|
1787
|
+
|
|
1788
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
1789
|
+
tbName = "snapshot"
|
|
1790
|
+
|
|
1791
|
+
// 模拟一只股票的数据
|
|
1792
|
+
date = 2023.01.03
|
|
1793
|
+
t = stockSnapshot(tradeDate=date, securityNumber=1)
|
|
1794
|
+
```
|
|
1795
|
+
|
|
1796
|
+
使用 `tableInsert` 写入:
|
|
1797
|
+
|
|
1798
|
+
```dolphindb
|
|
1799
|
+
re2 = loadTable(dbName, tbName).tableInsert(t)
|
|
1800
|
+
re2 // output: 4802
|
|
1801
|
+
```
|
|
1802
|
+
|
|
1803
|
+
使用 `append!` 写入:
|
|
1804
|
+
|
|
1805
|
+
```dolphindb
|
|
1806
|
+
re1 = loadTable(dbName, tbName).append!(t)
|
|
1807
|
+
select count(*) from re1
|
|
1808
|
+
```
|
|
1809
|
+
|
|
1810
|
+
使用 insert into 语句写入:
|
|
1811
|
+
|
|
1812
|
+
```dolphindb
|
|
1813
|
+
getConfig(`enableInsertStatementForDFSTable) // true
|
|
1814
|
+
|
|
1815
|
+
insert into snaptb values(2023.01.03,09:30:00.000,'',"000001",'',"OCALL",2,1.045,37,0,10001.799999999999272,
|
|
1816
|
+
1.4,1.41,1.631,1.633,0,0,0,0,0,0,0,22300,7.002,0,12100,7.002,0,0,0,0,0,
|
|
1817
|
+
array(DOUBLE[]).append!([[6.940000000000001,6.940000000000001,6.950000000000001,6.97,6.980000000000001,6.990000000000001,7.02,7.05,7.08,7.1]]),
|
|
1818
|
+
array(DOUBLE[]).append!([[7.09,7.06,7.05,7.04,7.030000000000001,7.01,6.990000000000001,6.980000000000001,6.950000000000001,6.92]]),
|
|
1819
|
+
array(INT[]).append!([[32400,32400,33300,36900,36900,36900,39600,41400,41400,44100]]),
|
|
1820
|
+
array(INT[]).append!([[48600,48600,47700,46800,42300,41400,40500,40500,34200,31500]]),
|
|
1821
|
+
array(INT[]).append!([[20,20,18,18,17,17,16,16,15,13]]),
|
|
1822
|
+
array(INT[]).append!([[10,10,12,16,17,17,17,18,18,19]]),
|
|
1823
|
+
0,0,0,0,0,0,0,0,1,1000,2454.300000000000181,30,45000,31392.200000000000727,237,237,204,210,236,226,10:57:45.000,1,
|
|
1824
|
+
array(LONG[]).append!([[,0,0,0,3600,5200,5200,12400,15600,15600]]),
|
|
1825
|
+
array(LONG[]).append!([[,0,100,3500,3600,3900,5900,12400,13500,15600]]))
|
|
1826
|
+
```
|
|
1827
|
+
|
|
1828
|
+
**思考题**:
|
|
1829
|
+
|
|
1830
|
+
(1)对比上述三种写入数据的方式,对于分布式表而言,哪种写入方式是最方便的?
|
|
1831
|
+
|
|
1832
|
+
注:
|
|
1833
|
+
|
|
1834
|
+
阅读 [插入数据](../db_distr_comp/db_oper/insert_data.html)
|
|
1835
|
+
|
|
1836
|
+
(2)使用 insert into 写入数据到分布式表,对写入性能有何影响?
|
|
1837
|
+
|
|
1838
|
+
注:
|
|
1839
|
+
|
|
1840
|
+
阅读 [redo log 和 cache engine](redoLog_cacheEngine.html)
|
|
1841
|
+
|
|
1842
|
+
### 5.2 查询数据
|
|
1843
|
+
|
|
1844
|
+
在 DolphinDB
|
|
1845
|
+
中内存对象可以直接通过切片、索引下标取数,且支持应用于函数直接进行计算,不光是向量、矩阵支持这种特性,内存表也同样支持。但是对于分区表、分布式表仅支持使用
|
|
1846
|
+
SQL 语句进行访问。
|
|
1847
|
+
|
|
1848
|
+
表 5-1 不同类型表的访问方式
|
|
1849
|
+
|
|
1850
|
+
| **操作方式** | **普通内存表** | **分区内存表**、**分布式表(dfs 分区表、维度表)** |
|
|
1851
|
+
| --- | --- | --- |
|
|
1852
|
+
| 索引、切片 ```dolphindb t[1] t[0:3] ``` | 支持 | 不支持 |
|
|
1853
|
+
| 函数 ```dolphindb sum(t) cumsum(t) ``` | 支持 | 不支持 |
|
|
1854
|
+
| SQL ```dolphindb select * from t ``` | 支持 | 支持 |
|
|
1855
|
+
|
|
1856
|
+
**例 1**:查询某日的所有股票数据。
|
|
1857
|
+
|
|
1858
|
+
```dolphindb
|
|
1859
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
1860
|
+
tbName = "snapshot"
|
|
1861
|
+
select * from loadTable(dbName, tbName) where TradeDate = 2023.01.03
|
|
1862
|
+
```
|
|
1863
|
+
|
|
1864
|
+
**例 2**:查询某日股票部分字段的数据。
|
|
1865
|
+
|
|
1866
|
+
```dolphindb
|
|
1867
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
1868
|
+
tbName = "snapshot"
|
|
1869
|
+
select concatDateTime(TradeDate, TradeTime) as TradeDateTime,
|
|
1870
|
+
SecurityID, OfferPrice[0] as offerPx1,
|
|
1871
|
+
BidPrice[0] as bidPx1
|
|
1872
|
+
from loadTable(dbName, tbName)
|
|
1873
|
+
where TradeDate = 2023.01.03
|
|
1874
|
+
```
|
|
1875
|
+
|
|
1876
|
+
### 5.3 删除数据
|
|
1877
|
+
|
|
1878
|
+
在 DolphinDB 中,为了应对不同的删除场景,系统支持按行、按分区以及全表删除等多种方式。
|
|
1879
|
+
|
|
1880
|
+
#### 5.3.1 硬删除&软删除
|
|
1881
|
+
|
|
1882
|
+
在具体分析删除场景前,我们先来了解一下 DolphinDB 内的删除机制。
|
|
1883
|
+
|
|
1884
|
+
在 DolphinDB 中,OLAP 引擎采取的是硬删除(物理删除)的方式,而 TSDB 支持软删除(逻辑删除)和硬删除两种方式。
|
|
1885
|
+
|
|
1886
|
+
表 5-2 软删除和硬删除的机制对比
|
|
1887
|
+
|
|
1888
|
+
| **分类** | **删除方式** | **delete 删除机制** |
|
|
1889
|
+
| --- | --- | --- |
|
|
1890
|
+
| 硬删除 | 直接从文件中删除数据。 | 1. **分区剪枝**:根据删除条件进行分区剪枝,确定删除涉及的分区。 2. **查到内存删除**:取出对应分区所有数据到内存后,根据条件删除数据。 3. **写回删除后的分区数据到新目录**:将删除后的数据重新写入数据库,系统会使用一个新的 CHUNK 目录(默认是“*物理表名\_cid*”)来保存写入的数据,旧的文件将被定时回收(默认 30 min)。 |
|
|
1891
|
+
| 软删除 | 追加写入带删除标记的数据。 | 1. **分区剪枝**:根据查询语句进行分区剪枝,缩窄查询范围。 2. **读到内存获取待删除数据**:根据查询条件,查询出需要删除的数据。 3. **追加写入待删除数据**:给需要删除的数据打上删除标记(deletion flag),并将排序列(sort column)和分区列(partition column)外字段值设置为空值,以 `append!` 方式将数据追加写入。 |
|
|
1892
|
+
|
|
1893
|
+
从上述机制可以了解到执行硬删除时,即使是按条件删除几条数据,也需要将相关分区的所有数据读取到内存,删除后再写回去;而软删除仅需要追加数据即可。因此就删除性能而言,硬删除在时间和空间的开销上都更高。但在查询场景下,软删除需要额外对数据进行过滤,因此相比硬删除,其性能更差。详情请参考
|
|
1894
|
+
[软删除](soft_delete.html) 。
|
|
1895
|
+
|
|
1896
|
+
#### 5.3.2 删除方法
|
|
1897
|
+
|
|
1898
|
+
下表列出了 DolphinDB
|
|
1899
|
+
支持的多种删除数据的方法,并给出了用法的示例、适用场景的说明。此外,在使用过程中不同的方法有一些使用的注意点和限制,详情参考对应链接的说明。
|
|
1900
|
+
|
|
1901
|
+
表 5-3 删除方法及其适用场景
|
|
1902
|
+
|
|
1903
|
+
| **方法** | **用法示例** | **适用场景** | **相关链接** |
|
|
1904
|
+
| --- | --- | --- | --- |
|
|
1905
|
+
| undef 函数 | ```dolphindb undef("t") ``` | - 适用于内存表; - 取消表变量定义; | [删除库表](../db_distr_comp/drop_database_table.html) |
|
|
1906
|
+
| delete 语句 | ```dolphindb delete from t where id=1 delete t2 from ej(t2, t1, `id) where flag=1 ``` | - 适用于所有表; - 条件删除行记录;根据其他表字段进行条件删除; - 删除时将相关分区查入内存,内存开销较大; - 支持 MVCC,会产生数据副本有额外的磁盘开销; | [删除数据](../db_distr_comp/db_oper/drop_db_tb.html) |
|
|
1907
|
+
| `truncate` 函数 | ```dolphindb dbName = "dfs://stock_lv2_snapshot" tbName = "snapshot" truncate(dbName, tbName) ``` | - 适用于分布式表; - 删除表中所有数据,但保留表结构; |
|
|
1908
|
+
| `dropPartition` 函数 | ```dolphindb dbName = "dfs://stock_lv2_snapshot" tbName = "snapshot" db = database(dbName) dropPartition(db, [2023.01.04], tableName=tbName) ``` | - 适用于分布式表; - 按分区删除分布式表数据; - 直接删除分区文件,与 delete 相比空间开销小。推荐在运维场景使用; | [删除分区](../db_distr_comp/db_oper/drop_partitions.html) |
|
|
1909
|
+
| `dropTable` 函数 | ```dolphindb dbName = "dfs://stock_lv2_snapshot" tbName = "snapshot" db = database(dbName) dropTable(db, tbName) ``` | - 适用于分布式表; - 删除分布式表中的所有数据,不保留表结构; | [删除库表](../db_distr_comp/drop_database_table.html) |
|
|
1910
|
+
| drop 语句 | ```dolphindb drop table if exists "dfs://test"."pt" drop table if exists "t" ``` | - 适用于所有表; - 删除表中的所有数据,不保留表结构; |
|
|
1911
|
+
|
|
1912
|
+
表 5-4 不同删除方法的特点比较
|
|
1913
|
+
|
|
1914
|
+
| **方法** | **支持内存表** | **支持分布式表** | **支持 MVCC** | **支持事务** | **是否保留表、字段结构** |
|
|
1915
|
+
| --- | --- | --- | --- | --- | --- |
|
|
1916
|
+
| delete 语句 | | | | | |
|
|
1917
|
+
| `truncate` 函数 | | | | | |
|
|
1918
|
+
| `dropPartition` 函数 | | | | | |
|
|
1919
|
+
| `dropTable` 函数 | | | | | |
|
|
1920
|
+
| drop 语句 | | | | | |
|
|
1921
|
+
|
|
1922
|
+
注:
|
|
1923
|
+
|
|
1924
|
+
- **多版本并发控制(MVCC)**:在写入、更新和删除数据时创建新的数据版本,而不是直接覆盖原有数据版本,从而实现读写分离。这种机制使得并发读操作能够继续访问旧版本的数据快照,不会受到写操作的影响,确保数据一致性和高效的并发性能。
|
|
1925
|
+
- **事务(Transaction):**
|
|
1926
|
+
是数据库系统中一个完整的、不可分割的操作单元。事务的主要目标是确保数据库的一致性和可靠性,即使在并发操作或系统故障的情况下,数据库仍能保持正确的状态。
|
|
1927
|
+
|
|
1928
|
+
**例 1:**删除某日的所有股票的快照数据。
|
|
1929
|
+
|
|
1930
|
+
由于该表是按天进行分区的,因此直接调用
|
|
1931
|
+
`dropPartition`函数删除整个分区即可。由于该快照数据库采用的是组合分区,可以通过指定条件的方式进行删除。
|
|
1932
|
+
|
|
1933
|
+
```dolphindb
|
|
1934
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
1935
|
+
tbName = "snapshot"
|
|
1936
|
+
db = database(dbName)
|
|
1937
|
+
dropPartition(db, [2023.01.04], tableName=tbName)
|
|
1938
|
+
```
|
|
1939
|
+
|
|
1940
|
+
**例 2:**删除某个 ID 的所有股票数据。
|
|
1941
|
+
|
|
1942
|
+
由于股票字段采用的是 HASH 分区,无法通过直接删除分区的方式删除某只股票的数据,此时可以借助 delete 语句按照条件进行删除。
|
|
1943
|
+
|
|
1944
|
+
```dolphindb
|
|
1945
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
1946
|
+
tbName = "snapshot"
|
|
1947
|
+
delete from loadTable(dbName, tbName) where SecurityId = "000001"
|
|
1948
|
+
```
|
|
1949
|
+
|
|
1950
|
+
#### 5.3.3 场景性能分析
|
|
1951
|
+
|
|
1952
|
+
本节结合实际案例,对比说明不同场景下如何选择更优的删除方式。
|
|
1953
|
+
|
|
1954
|
+
示例库表创建脚本:
|
|
1955
|
+
|
|
1956
|
+
```dolphindb
|
|
1957
|
+
use MockData
|
|
1958
|
+
drop database if exists "dfs://k_minute_level"
|
|
1959
|
+
|
|
1960
|
+
create database "dfs://k_minute_level"
|
|
1961
|
+
partitioned by VALUE(2020.01.01..2021.01.01)
|
|
1962
|
+
engine='OLAP'
|
|
1963
|
+
|
|
1964
|
+
create table "dfs://k_minute_level"."k_minute"(
|
|
1965
|
+
securityid SYMBOL
|
|
1966
|
+
tradetime TIMESTAMP
|
|
1967
|
+
open DOUBLE
|
|
1968
|
+
close DOUBLE
|
|
1969
|
+
high DOUBLE
|
|
1970
|
+
low DOUBLE
|
|
1971
|
+
vol INT
|
|
1972
|
+
val DOUBLE
|
|
1973
|
+
vwap DOUBLE
|
|
1974
|
+
)
|
|
1975
|
+
partitioned by tradetime
|
|
1976
|
+
go
|
|
1977
|
+
|
|
1978
|
+
dates = getMarketCalendar('XSHE', 2022.01.01, 2022.01.31)
|
|
1979
|
+
t = stockMinuteKLine(dates[0], dates[dates.size()-1], 10)
|
|
1980
|
+
|
|
1981
|
+
loadTable("dfs://k_minute_level", "k_minute").append!(t)
|
|
1982
|
+
```
|
|
1983
|
+
|
|
1984
|
+
**场景一:**删除部分分区数据,推荐使用函数 `dropPartition`。
|
|
1985
|
+
|
|
1986
|
+
对比删除单个分区场景下,delete 和 `dropPartition` 函数的性能:
|
|
1987
|
+
|
|
1988
|
+
```dolphindb
|
|
1989
|
+
// delete 删除 2022.01.04 的数据
|
|
1990
|
+
timer delete from loadTable("dfs://k_minute_level", "k_minute") where date(tradetime) = 2022.01.04 // Time elapsed: 4.099 ms
|
|
1991
|
+
// Time elapsed: 20.049 ms
|
|
1992
|
+
|
|
1993
|
+
// dropPartition 删除 2022.01.05 的数据
|
|
1994
|
+
db = database("dfs://k_minute_level")
|
|
1995
|
+
timer dropPartition(db, [2022.01.05], tableName="k_minute")
|
|
1996
|
+
// Time elapsed: 5.978 ms
|
|
1997
|
+
```
|
|
1998
|
+
|
|
1999
|
+
对比删除多个分区场景下,delete 和 `dropPartition` 函数的性能:
|
|
2000
|
+
|
|
2001
|
+
```dolphindb
|
|
2002
|
+
// delete 删除多个分区数据
|
|
2003
|
+
timer delete from loadTable("dfs://k_minute_level", "k_minute") where date(tradetime) between 2022.01.01 and 2022.01.31 // Time elapsed: 4.099 ms
|
|
2004
|
+
// Time elapsed: 469.155 ms
|
|
2005
|
+
|
|
2006
|
+
// 将 delete 删除的数据重写回去
|
|
2007
|
+
loadTable("dfs://k_minute_level", "k_minute").append!(t)
|
|
2008
|
+
|
|
2009
|
+
// dropPartition 删除多个分区数据
|
|
2010
|
+
db = database("dfs://k_minute_level")
|
|
2011
|
+
timer dropPartition(db, 2022.01.01..2022.01.31, tableName="k_minute")
|
|
2012
|
+
// Time elapsed: 35.645 ms
|
|
2013
|
+
```
|
|
2014
|
+
|
|
2015
|
+
对比发现 `dropPartition` 函数的删除性能明显优于 delete 语句。这是因为 delete 语句具有
|
|
2016
|
+
SQL 解析的开销。 此外,需要注意的是由于 delete 支持 MVCC
|
|
2017
|
+
机制,在删除时会产生多个版本的数据副本占用**额外磁盘空间**,且与
|
|
2018
|
+
`dropPartition` 直接删除分区数据文件不同,delete
|
|
2019
|
+
会将数据**读取到内存**后再进行删除。因此,在内存受限的场景下,delete 操作可能会导致内存溢出。推荐运维时使用
|
|
2020
|
+
`dropPartition` 函数删除数据。
|
|
2021
|
+
|
|
2022
|
+
**场景二:**删除全表数据, 推荐使用 `truncate`、 `dropTable`
|
|
2023
|
+
或 drop 语句。
|
|
2024
|
+
|
|
2025
|
+
对比 `delete`、`truncate` 以及
|
|
2026
|
+
`dropTable` 的性能:
|
|
2027
|
+
|
|
2028
|
+
注:
|
|
2029
|
+
|
|
2030
|
+
k\_minute\_1 和 k\_minute\_2 是与 k\_minute
|
|
2031
|
+
结构完全相同的表,且写入相同的数据。
|
|
2032
|
+
|
|
2033
|
+
```dolphindb
|
|
2034
|
+
// delete
|
|
2035
|
+
timer delete from loadTable("dfs://k_minute_level", "k_minute")
|
|
2036
|
+
// Time elapsed: 495.771 ms
|
|
2037
|
+
|
|
2038
|
+
// truncate
|
|
2039
|
+
timer truncate("dfs://k_minute_level", "k_minute_1")
|
|
2040
|
+
// Time elapsed: 70.856 ms
|
|
2041
|
+
|
|
2042
|
+
// dropTable
|
|
2043
|
+
db = database("dfs://k_minute_level")
|
|
2044
|
+
timer dropTable(db, "k_minute_2")
|
|
2045
|
+
// Time elapsed: 71.254 ms
|
|
2046
|
+
```
|
|
2047
|
+
|
|
2048
|
+
删除后,再次查询表数据:
|
|
2049
|
+
|
|
2050
|
+
```dolphindb
|
|
2051
|
+
// delete
|
|
2052
|
+
select count(*) from loadTable("dfs://k_minute_level", "k_minute") // output: 0
|
|
2053
|
+
|
|
2054
|
+
// truncate
|
|
2055
|
+
select count(*) from loadTable("dfs://k_minute_level", "k_minute_1") // output: 0
|
|
2056
|
+
|
|
2057
|
+
// dropTable
|
|
2058
|
+
select count(*) from loadTable("dfs://k_minute_level", "k_minute_2")
|
|
2059
|
+
// error: getFileBlocksMeta on path '/k_minute_level/k_minute_2.tbl' failed, reason: path does not exist
|
|
2060
|
+
```
|
|
2061
|
+
|
|
2062
|
+
对比性能开销,可以发现在删除全表数据的场景下, `truncate` 和
|
|
2063
|
+
`dropTable` 是比较推荐的方式。两者的区别在于,`truncate`
|
|
2064
|
+
保留原表结构只是删除了数据,而 `dropTable` 会将表结构也删除。
|
|
2065
|
+
|
|
2066
|
+
**场景三:**数据导入分布式表时,写入了重复数据,希望对该表进行去重。
|
|
2067
|
+
|
|
2068
|
+
对比 delete 方法和 dropPartition 删除分区重写的方式:
|
|
2069
|
+
|
|
2070
|
+
```dolphindb
|
|
2071
|
+
t1 = stockMinuteKLine(2022.01.04, 2022.01.05, 10)
|
|
2072
|
+
|
|
2073
|
+
// 写入 2 天重复数据
|
|
2074
|
+
loadTable("dfs://k_minute_level", "k_minute").append!(t1)
|
|
2075
|
+
|
|
2076
|
+
// delete statement
|
|
2077
|
+
timer delete from loadTable("dfs://k_minute_level", "k_minute") where isDuplicated([securityid, tradetime], FIRST) = true map
|
|
2078
|
+
// Time elapsed: 271.374 ms
|
|
2079
|
+
|
|
2080
|
+
// 写入 2 天重复数据
|
|
2081
|
+
loadTable("dfs://k_minute_level", "k_minute").append!(t1)
|
|
2082
|
+
|
|
2083
|
+
// rewrite data
|
|
2084
|
+
timer{
|
|
2085
|
+
tmp = select * from loadTable("dfs://k_minute_level", "k_minute") where isDuplicated([securityid, tradetime], FIRST) = false map
|
|
2086
|
+
truncate("dfs://k_minute_level", "k_minute")
|
|
2087
|
+
loadTable("dfs://k_minute_level", "k_minute").append!(tmp)
|
|
2088
|
+
}
|
|
2089
|
+
// Time elapsed: 86.429 ms
|
|
2090
|
+
```
|
|
2091
|
+
|
|
2092
|
+
注:
|
|
2093
|
+
|
|
2094
|
+
由于 `isDuplicated`
|
|
2095
|
+
是顺序敏感函数,无法直接在查询分布式表的条件语句中使用, 此处增加了分区限定关键字词 map,使语句不跨分区执行。
|
|
2096
|
+
|
|
2097
|
+
该场景下,比起使用 delete + `isDuplicate`
|
|
2098
|
+
函数条件删除,查出去重后的数据、全表删除然后重新写入是性能更好的方式。
|
|
2099
|
+
|
|
2100
|
+
但是对于社区用户,由于内存资源有限,delete 去重或一次性查询重写去重都可能会导致内存
|
|
2101
|
+
OOM,因此可以改写成遍历分区的方式执行。参考脚本如下:
|
|
2102
|
+
|
|
2103
|
+
```dolphindb
|
|
2104
|
+
dates = getTabletsMeta("%k_minute_level/%").dfsPath.split("/")[2].temporalParse("yyyyMMdd")
|
|
2105
|
+
timer{
|
|
2106
|
+
for(date in dates){
|
|
2107
|
+
tmp = select * from loadTable("dfs://k_minute_level", "k_minute") where partition(tradetime, date), isDuplicated([securityid, tradetime], FIRST) = false
|
|
2108
|
+
dropPartition(db, [date], tableName="k_minute")
|
|
2109
|
+
loadTable("dfs://k_minute_level", "k_minute").append!(tmp)
|
|
2110
|
+
}
|
|
2111
|
+
}
|
|
2112
|
+
// Time elapsed: 301.925 ms
|
|
2113
|
+
```
|
|
2114
|
+
|
|
2115
|
+
注:
|
|
2116
|
+
|
|
2117
|
+
本例对所有分区都进行了遍历,如果已知重复写的分区,可以进一步缩小遍历范围。
|
|
2118
|
+
|
|
2119
|
+
### 5.4 更新数据
|
|
2120
|
+
|
|
2121
|
+
DolphinDB 的数据更新和数据删除的机制类似,每次更新时,由于 MVCC 机制,系统会额外产生数据副本存储在磁盘上,由系统定时回收;对于 TSDB
|
|
2122
|
+
引擎,在配置数据保留策略为保留最新一条的场景下,更新也和软删除类似,以追加的方式实现。
|
|
2123
|
+
|
|
2124
|
+
最基础的更新方式就是通过 update 语句实现,如果要基于某些字段组成的键进行更新(该键存在)或追加(该键不存在),则可以使用
|
|
2125
|
+
`upsert!` 函数。
|
|
2126
|
+
|
|
2127
|
+
**例 1.** 向快照表追加并更新买卖 1 档报价的信息。
|
|
2128
|
+
|
|
2129
|
+
```dolphindb
|
|
2130
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
2131
|
+
tbName = "snapshot"
|
|
2132
|
+
|
|
2133
|
+
// 分布式表无法通过 update 直接追加字段,需要通过 addColumn
|
|
2134
|
+
loadTable(dbName, tbName).addColumn(["OfferPx1", "BidPrice1"], [DOUBLE, DOUBLE])
|
|
2135
|
+
// 更新更新买卖 1 档报价的信息
|
|
2136
|
+
update loadTable(dbName, tbName) set OfferPx1 = OfferPrice[0], BidPrice1 = BidPrice[0] where TradeDate == 2022.12.01
|
|
2137
|
+
```
|
|
2138
|
+
|
|
2139
|
+
**例 2.** 向快照表写入数据时,希望根据时间和股票代码进行去重写入。
|
|
2140
|
+
|
|
2141
|
+
```dolphindb
|
|
2142
|
+
// 模拟写入的数据
|
|
2143
|
+
use MockData
|
|
2144
|
+
date = 2023.01.03
|
|
2145
|
+
t = stockSnapshot(tradeDate=date, securityNumber=1)
|
|
2146
|
+
// 如果执行了增加列字段的代码,需要执行此步
|
|
2147
|
+
update t set OfferPx1 = OfferPrice[0], BidPrice1 = BidPrice[0]
|
|
2148
|
+
|
|
2149
|
+
// 向分布式表进行去重写入
|
|
2150
|
+
loadTable(dbName, tbName).upsert!(t, keyColNames=["TradeDate", "TradeTime", "SecurityID"])
|
|
2151
|
+
```
|
|
2152
|
+
|
|
2153
|
+
注:
|
|
2154
|
+
|
|
2155
|
+
对于已经存储在数据库中的键值重复的数据,upsert! 不会对其进行去重,且后续键值相同的数据通过 upsert!
|
|
2156
|
+
函数追加时,只会更新重复数据中第一个命中键值的记录,其余相同键值的记录不做更新。
|
|
2157
|
+
|
|
2158
|
+
### 5.5 下一步阅读
|
|
2159
|
+
|
|
2160
|
+
- SQL 编程:[SQL 标准化](std_sql_ddb.html)
|
|
2161
|
+
[SQL 编写案例](ddb_sql_cases.html)
|
|
2162
|
+
- 增删改查:[数据库操作](../db_distr_comp/db_distr_comp.html "DolphinDB 数据库的基本操作,例如创建数据库、表,增加列、分区,数据查询,表连接等。")
|
|
2163
|
+
[分布式表数据更新原理和性能](dolphindb_update.html)
|
|
2164
|
+
[软删除](soft_delete.html)
|
|
2165
|
+
|
|
2166
|
+
## 6. 基于 SQL 的批计算
|
|
2167
|
+
|
|
2168
|
+
本章将讲解如何使用 SQL 进行常见的数据处理,包括查询、聚合、时序分析、行列转换、关联查询、更新删除等操作,并基于 DolphinDB
|
|
2169
|
+
数据表,从金融场景涉及的通用表操作出发,结合案例进行演示。
|
|
2170
|
+
|
|
2171
|
+
注:
|
|
2172
|
+
|
|
2173
|
+
本章所有的例子都基于 3.3 节创建的 "dfs://stock\_lv2\_snapshot" 库下的快照表
|
|
2174
|
+
snapshot。
|
|
2175
|
+
|
|
2176
|
+
### 6.1 库表加载
|
|
2177
|
+
|
|
2178
|
+
对于**已经创建的库表**,DolphinDB 可以借助 `database` 函数进行加载,参考脚本如下:
|
|
2179
|
+
|
|
2180
|
+
```dolphindb
|
|
2181
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
2182
|
+
snapdb = database(dbName)
|
|
2183
|
+
schema(snapdb)
|
|
2184
|
+
```
|
|
2185
|
+
|
|
2186
|
+
如果是在对应数据目录(cataLog)下创建的库表,则可以用 “use catalog xxx”
|
|
2187
|
+
的方式加载数据目录,例如:
|
|
2188
|
+
|
|
2189
|
+
```dolphindb
|
|
2190
|
+
use catalog trading
|
|
2191
|
+
select count(*) from stock_lv2_snapshot.snapshot
|
|
2192
|
+
```
|
|
2193
|
+
|
|
2194
|
+
详情请参考 [数据目录](../db_distr_comp/db/catalog.html) 。
|
|
2195
|
+
|
|
2196
|
+
同样,分布式表的加载也可以借助 `loadTable` 函数进行,参考脚本如下:
|
|
2197
|
+
|
|
2198
|
+
```dolphindb
|
|
2199
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
2200
|
+
tbName = "snapshot"
|
|
2201
|
+
|
|
2202
|
+
snaptb = loadTable(dbName, tbName)
|
|
2203
|
+
select count(*) from snaptb
|
|
2204
|
+
// 或者 select count(*) from loadTable(dbName, tbName)
|
|
2205
|
+
```
|
|
2206
|
+
|
|
2207
|
+
除了借助函数,还可以通过 “数据库句柄”.”数据库表名” 访问分布式表:
|
|
2208
|
+
|
|
2209
|
+
```dolphindb
|
|
2210
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
2211
|
+
snapdb = database(dbName)
|
|
2212
|
+
|
|
2213
|
+
select count(*) from snapdb.snapshot
|
|
2214
|
+
```
|
|
2215
|
+
|
|
2216
|
+
注:
|
|
2217
|
+
|
|
2218
|
+
loadTable
|
|
2219
|
+
加载的只是分布式表的句柄,即元数据信息。只有对句柄进行查询时,才会真正的将数据加载到内存。
|
|
2220
|
+
|
|
2221
|
+
### 6.2 分区剪枝
|
|
2222
|
+
|
|
2223
|
+
DolphinDB 在 SQL 查询、更新和删除数据时,支持根据 where
|
|
2224
|
+
条件对查询进行优化。最常用的优化之一就是如果过滤条件包含分区字段,则查询、更新和删除时,系统能够支持按照分区信息进行剪枝处理,减少扫描的分区数。
|
|
2225
|
+
|
|
2226
|
+
注:
|
|
2227
|
+
|
|
2228
|
+
为了更好地说明该场景,这里利用 [[HINT\_EXPLAIN]](../progr/sql/hint_explain.html)
|
|
2229
|
+
关键字打印执行计划,观察是否进行剪枝。
|
|
2230
|
+
|
|
2231
|
+
**例 1.** 查询 2022.12.01 ~ 2022.12.03 日期范围内的数据
|
|
2232
|
+
|
|
2233
|
+
触发分区剪枝的场景:使用 between 语句、非链式的过滤条件
|
|
2234
|
+
|
|
2235
|
+
```dolphindb
|
|
2236
|
+
select [HINT_EXPLAIN] * from loadTable(dbName, tbName) where TradeDate between 2022.12.01 and 2022.12.03
|
|
2237
|
+
select [HINT_EXPLAIN] * from loadTable(dbName, tbName) where TradeDate >= 2022.12.01 and TradeDate <= 2022.12.03
|
|
2238
|
+
// output:
|
|
2239
|
+
// 可以看到查询遍历的分区数为 90
|
|
2240
|
+
"map": {\n' +
|
|
2241
|
+
' "partitions": {\n' +
|
|
2242
|
+
' "local": 90,\n' +
|
|
2243
|
+
' "remote": 0\n' +
|
|
2244
|
+
' },\n' + "sql": ...
|
|
2245
|
+
' }
|
|
2246
|
+
```
|
|
2247
|
+
|
|
2248
|
+
无法触发分区剪枝的场景:链式条件过滤
|
|
2249
|
+
|
|
2250
|
+
```dolphindb
|
|
2251
|
+
select [HINT_EXPLAIN] * from loadTable(dbName, tbName) where 2022.12.01 <= TradeDate <= 2022.12.03
|
|
2252
|
+
|
|
2253
|
+
// output:
|
|
2254
|
+
// 可以看到查询遍历的分区数为 10891
|
|
2255
|
+
"map": {\n' +
|
|
2256
|
+
' "partitions": {\n' +
|
|
2257
|
+
' "local": 10891,\n' +
|
|
2258
|
+
' "remote": 0\n' +
|
|
2259
|
+
' }
|
|
2260
|
+
```
|
|
2261
|
+
|
|
2262
|
+
**例 2.** 查询某只、某几只股票的数据
|
|
2263
|
+
|
|
2264
|
+
使用等值查询,in 查询都可以触发分区剪枝。
|
|
2265
|
+
|
|
2266
|
+
```dolphindb
|
|
2267
|
+
select [HINT_EXPLAIN] * from loadTable(dbName, tbName) where SecurityID = "000001"
|
|
2268
|
+
|
|
2269
|
+
// output:
|
|
2270
|
+
// 可以看到查询遍历的分区数为 243
|
|
2271
|
+
"map": {\n' +
|
|
2272
|
+
' "partitions": {\n' +
|
|
2273
|
+
' "local": 243,\n' +
|
|
2274
|
+
' "remote": 0\n' +
|
|
2275
|
+
' }
|
|
2276
|
+
|
|
2277
|
+
|
|
2278
|
+
select [HINT_EXPLAIN] * from loadTable(dbName, tbName) where SecurityID in ["000001", "000002"]
|
|
2279
|
+
// output:
|
|
2280
|
+
// 可以看到查询遍历的分区数为 485
|
|
2281
|
+
"map": {\n' +
|
|
2282
|
+
' "partitions": {\n' +
|
|
2283
|
+
' "local": 485,\n' +
|
|
2284
|
+
' "remote": 0\n' +
|
|
2285
|
+
' }
|
|
2286
|
+
```
|
|
2287
|
+
|
|
2288
|
+
**例 3.** 查询股票 ”000001“ 在 2022 年 2 月的快照数据。
|
|
2289
|
+
|
|
2290
|
+
对于时间类型的分区列应用时间精度更低的函数,也可以进行分区剪枝,缩小分区范围。
|
|
2291
|
+
|
|
2292
|
+
```dolphindb
|
|
2293
|
+
select [HINT_EXPLAIN] * from loadTable(dbName, tbName) where month(TradeDate) = 2022.02M and SecurityID = "000001"
|
|
2294
|
+
|
|
2295
|
+
// output:
|
|
2296
|
+
// 可以看到查询遍历的分区数为 16
|
|
2297
|
+
"map": {\n' +
|
|
2298
|
+
' "partitions": {\n' +
|
|
2299
|
+
' "local": 16,\n' +
|
|
2300
|
+
' "remote": 0\n' +
|
|
2301
|
+
' }
|
|
2302
|
+
```
|
|
2303
|
+
|
|
2304
|
+
### 6.3 单点查询
|
|
2305
|
+
|
|
2306
|
+
与 OLAP 引擎不同,TSDB 引擎额外维护了一个键值索引(通过配置参数 *sortColumns*指定),因此除了分区剪枝外,在过滤条件中指定键值字段,也可以加速查询。索引的组织形式详见 [TSDB 存储引擎详解](tsdb_explained.html#331-%E7%A1%AE%E5%AE%9A%E7%B4%A2%E5%BC%95%E9%94%AE%E5%80%BC) 3.3.1 节对索引键的说明。
|
|
2307
|
+
|
|
2308
|
+
可以通过 schema 函数查看 *sortColumns* 配置的值:
|
|
2309
|
+
|
|
2310
|
+
```dolphindb
|
|
2311
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
2312
|
+
tbName = "snapshot"
|
|
2313
|
+
loadTable(dbName, tbName).schema().sortColumns
|
|
2314
|
+
// output: ["SecurityID","TradeTime"]
|
|
2315
|
+
```
|
|
2316
|
+
|
|
2317
|
+
该*sortColumns* 属性显示索引键是 securityID(除最后一个时间列外的其他字段构成索引键),且每个索引对应的数据按照
|
|
2318
|
+
TradeTime 顺序存储在磁盘上。SecurityID 字段既是分区列又是索引键,如果查询条件包含 securityID
|
|
2319
|
+
不仅可以进行分区剪枝,还可以根据内存中维护的索引信息快速定位到数据块。
|
|
2320
|
+
|
|
2321
|
+
以查询某天某只股票的数据为例,通过 [HINT\_EXPLAIN] 获取 SQL 执行计划,观察是否命中索引:
|
|
2322
|
+
|
|
2323
|
+
```dolphindb
|
|
2324
|
+
select [HINT_EXPLAIN] * from loadTable(dbName, tbName) where TradeDate = 2022.12.01 and SecurityID = "000002"
|
|
2325
|
+
// output:
|
|
2326
|
+
// 打印信息的 where 部分包含查询涉及扫描的数据块个数和命中的索引条件数
|
|
2327
|
+
"where": {\n' +
|
|
2328
|
+
' "TSDBIndexPrefiltering": {\n' +
|
|
2329
|
+
' "blocksToBeScanned": 62,\n' +
|
|
2330
|
+
' "matchedWhereConditions": 1\n' +
|
|
2331
|
+
' }
|
|
2332
|
+
```
|
|
2333
|
+
|
|
2334
|
+
### 6.4 聚合计算
|
|
2335
|
+
|
|
2336
|
+
在金融场景下,聚合指标是策略不可或缺的一部分,有助于帮助交易员、分析员快速识别市场趋势,做出基于数据的策略调整。以股票数据为例,常用的聚合方式有以下两种:
|
|
2337
|
+
|
|
2338
|
+
- 按照交易时间聚合
|
|
2339
|
+
- 按股票标的聚合
|
|
2340
|
+
|
|
2341
|
+
下面综合上述场景,结合具体例子来进行说明。
|
|
2342
|
+
|
|
2343
|
+
**例1**:基于历史数据计算 5 分钟 K 线高开低收(OHLC)和总量。
|
|
2344
|
+
|
|
2345
|
+
```dolphindb
|
|
2346
|
+
// 模拟数据
|
|
2347
|
+
n = 1000000
|
|
2348
|
+
date = take(2019.11.07 2019.11.08, n)
|
|
2349
|
+
time = (09:30:00.000 + rand(int(6.5*60*60*1000), n)).sort!()
|
|
2350
|
+
timestamp = concatDateTime(date, time)
|
|
2351
|
+
price = 100+cumsum(rand(0.02, n)-0.01)
|
|
2352
|
+
volume = rand(1000, n)
|
|
2353
|
+
symbol = rand(`AAPL`FB`AMZN`MSFT, n)
|
|
2354
|
+
trade = table(symbol, date, time, timestamp, price, volume).sortBy!(`symbol`timestamp)
|
|
2355
|
+
|
|
2356
|
+
// 计算 OHLC 和 Volume
|
|
2357
|
+
barMinutes = 5
|
|
2358
|
+
OHLC = select first(price) as open, max(price) as high, min(price) as low, last(price) as close, sum(volume) as volume from trade group by symbol, date, bar(time, barMinutes*60*1000) as barStart
|
|
2359
|
+
```
|
|
2360
|
+
|
|
2361
|
+
这里用到了四个函数 `max`, `first`, `min`,
|
|
2362
|
+
`low` 分别用于计算窗口内数据的高开低收聚合值,`sum` 用于计算总量。
|
|
2363
|
+
|
|
2364
|
+
K 线窗口借助 group by 分组语句进行划分:脚本 `group by symbol, date, bar(time,
|
|
2365
|
+
barMinutes*60*1000) as barStart` 表示按照股票代码、日期、5分钟时间窗口划分,其中 bar
|
|
2366
|
+
函数用于按照时间将每 5 分钟的数据划分为一组。
|
|
2367
|
+
|
|
2368
|
+
例 1 只是计算 K 线最精简的一个例子,在实际场景中可能还会涉及非常复杂的数据处理过程,本节将在例 2 进行具体的讲解。
|
|
2369
|
+
|
|
2370
|
+
**例2**:基于历史快照数据合成分钟 K 线。如果某只股票在某一分钟无数据,则填充为 0。
|
|
2371
|
+
|
|
2372
|
+
注:
|
|
2373
|
+
|
|
2374
|
+
本案例的示例代码基于教程 [基于快照行情的股票和基金 K 线合成](k.html) 进行改写,此处仅展示关键代码,以方便新手快速理解。
|
|
2375
|
+
|
|
2376
|
+
Step1. 变量函数定义
|
|
2377
|
+
|
|
2378
|
+
- 自定义最高价最低价计算函数
|
|
2379
|
+
|
|
2380
|
+
```dolphindb
|
|
2381
|
+
// 自定义计算最高最低点的聚合函数
|
|
2382
|
+
// defg 用于声明聚合函数
|
|
2383
|
+
|
|
2384
|
+
defg high(DeltasHighPrice, HighPrice, LastPrice){
|
|
2385
|
+
if(sum(DeltasHighPrice)>0.000001){
|
|
2386
|
+
return max(HighPrice)
|
|
2387
|
+
}
|
|
2388
|
+
else{
|
|
2389
|
+
return max(LastPrice)
|
|
2390
|
+
}
|
|
2391
|
+
}
|
|
2392
|
+
|
|
2393
|
+
defg low(DeltasLowPrice, LowPrice, LastPrice){
|
|
2394
|
+
sumDeltas = sum(DeltasLowPrice)
|
|
2395
|
+
if(sumDeltas<-0.000001 and sumDeltas!=NULL){
|
|
2396
|
+
return min(iif(LowPrice==0.0, NULL, LowPrice))
|
|
2397
|
+
}
|
|
2398
|
+
else{
|
|
2399
|
+
return min(LastPrice)
|
|
2400
|
+
}
|
|
2401
|
+
}
|
|
2402
|
+
```
|
|
2403
|
+
|
|
2404
|
+
Step2. 数据预处理
|
|
2405
|
+
|
|
2406
|
+
- 把09:25:00-09:30:00的数据归入第一根 K 线:[09:30:00, 09:31:00]
|
|
2407
|
+
- 计算同一个股票或者基金的两笔相邻快照的最高价和最低价的变化幅度
|
|
2408
|
+
- 计算同一个股票或者基金的两笔相邻快照的成交量、成交金额和成交笔数的增量
|
|
2409
|
+
|
|
2410
|
+
```dolphindb
|
|
2411
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
2412
|
+
tbName = "snapshot"
|
|
2413
|
+
|
|
2414
|
+
tempTB1 = select TradeDate,
|
|
2415
|
+
iif(TradeTime <=09:30:00.000, 09:30:00.000, TradeTime) as TradeTime,
|
|
2416
|
+
SecurityID,
|
|
2417
|
+
OpenPrice,
|
|
2418
|
+
PreCloPrice,
|
|
2419
|
+
HighPrice,
|
|
2420
|
+
LowPrice,
|
|
2421
|
+
LastPrice,
|
|
2422
|
+
PreCloseIOPV,
|
|
2423
|
+
IOPV,
|
|
2424
|
+
UpLimitPx,
|
|
2425
|
+
DownLimitPx,
|
|
2426
|
+
iif(deltas(HighPrice)>0.000001, 1, 0) as DeltasHighPrice,
|
|
2427
|
+
iif(abs(deltas(LowPrice))>0.000001, -1, 0) as DeltasLowPrice,
|
|
2428
|
+
iif(deltas(TotalVolumeTrade)==NULL, TotalVolumeTrade, deltas(TotalVolumeTrade)) as DeltasVolume,
|
|
2429
|
+
iif(deltas(TotalValueTrade)==NULL, TotalValueTrade, deltas(TotalValueTrade)) as DeltasTurnover,
|
|
2430
|
+
iif(deltas(NumTrades)==NULL, NumTrades, deltas(NumTrades)) as DeltasTradesCount
|
|
2431
|
+
from loadTable(dbName, tbName)
|
|
2432
|
+
where TradeTime >=09:25:00.000
|
|
2433
|
+
context by SecurityID
|
|
2434
|
+
```
|
|
2435
|
+
|
|
2436
|
+
Step3. K 线计算
|
|
2437
|
+
|
|
2438
|
+
针对处理后的快照行情进行窗口为1分钟、步长为1分钟的滚动窗口计算。
|
|
2439
|
+
|
|
2440
|
+
```dolphindb
|
|
2441
|
+
re = select firstNot(LastPrice, 0) as OpenPrice,
|
|
2442
|
+
high(DeltasHighPrice, HighPrice, LastPrice) as HighPrice,
|
|
2443
|
+
low(DeltasLowPrice, LowPrice, LastPrice) as LowPrice,
|
|
2444
|
+
last(LastPrice) as ClosePrice,
|
|
2445
|
+
sum(DeltasVolume) as Volume,
|
|
2446
|
+
sum(DeltasTurnover) as Turnover,
|
|
2447
|
+
sum(DeltasTradesCount) as TradesCount,
|
|
2448
|
+
last(PreCloPrice) as PreClosePrice,
|
|
2449
|
+
last(PreCloseIOPV) as PreCloseIOPV,
|
|
2450
|
+
last(IOPV) as IOPV,
|
|
2451
|
+
last(UpLimitPx) as UpLimitPx,
|
|
2452
|
+
last(DownLimitPx) as DownLimitPx,
|
|
2453
|
+
lastNot(LastPrice, 0)\firstNot(LastPrice, 0)-1 as FirstBarChangeRate
|
|
2454
|
+
from tempTB1
|
|
2455
|
+
group by SecurityID, TradeDate, interval(X=TradeTime, duration=60s, label='left', fill=0) as TradeTime
|
|
2456
|
+
```
|
|
2457
|
+
|
|
2458
|
+
该部分使用了一个关键的 SQL 语句 group by 进行分组聚合计算,group by 只能够搭配聚合指标使用,上述代码中的
|
|
2459
|
+
`firstNot`, `high`, `low`,
|
|
2460
|
+
`last`, `sum`, `lastNot`
|
|
2461
|
+
等等都是聚合函数。
|
|
2462
|
+
|
|
2463
|
+
group by 指定的分组指标是 SecurityID, TradeDate, interval(X=TradeTime, duration=60s,
|
|
2464
|
+
label='left', fill=0),即股票字段、日期、分钟时间。`interval` 函数必须与 group by
|
|
2465
|
+
语句搭配使用,通常用于时间精度的降维场景,此处 `interval` 函数将毫秒精度的时间字段,按照分钟窗口进行划分,缺失值填充为
|
|
2466
|
+
0。
|
|
2467
|
+
|
|
2468
|
+
部分计算结果示意如下:
|
|
2469
|
+
|
|
2470
|
+
```dolphindb
|
|
2471
|
+
SecurityID TradeDate TradeTime OpenPrice HighPrice LowPrice ClosePrice Volume Turnover TradesCount ...
|
|
2472
|
+
---------- ---------- ------------ --------- --------- -------- ---------- ------ --------------------- ----------- ---
|
|
2473
|
+
000002 2022.01.04 09:30:00.000 1.6 1.779 1.003 1.3 100 10022.200000000000727 94 ...
|
|
2474
|
+
000002 2022.01.04 09:31:00.000 1.5 1.756 1.003 1.4 0 0 0 ...
|
|
2475
|
+
000002 2022.01.04 09:32:00.000 1.6 1.777 1.011 1.5 0 0 0 ...
|
|
2476
|
+
000002 2022.01.04 09:33:00.000 1.5 1.791 1.01 1.5 0 0 0 ...
|
|
2477
|
+
000002 2022.01.04 09:34:00.000 1.4 1.791 1.042 1.5 0 1.5 -39 ...
|
|
2478
|
+
000002 2022.01.04 09:35:00.000 1.5 1.794 1.003 1.5 0 0 0 ...
|
|
2479
|
+
...
|
|
2480
|
+
```
|
|
2481
|
+
|
|
2482
|
+
注:
|
|
2483
|
+
|
|
2484
|
+
由于快照表 snapshot 的数据量很大,如果直接执行上述语句,社区版的 server 执行时可能会报错 Out
|
|
2485
|
+
of memory。一个替代方案是按分区串行计算然后合并计算结果。
|
|
2486
|
+
|
|
2487
|
+
先将上述 K 线的计算逻辑封装在一个函数内。
|
|
2488
|
+
|
|
2489
|
+
```dolphindb
|
|
2490
|
+
def calcKLine(snapshot){
|
|
2491
|
+
tempTB1 = select TradeDate,
|
|
2492
|
+
iif(TradeTime <=09:30:00.000, 09:30:00.000, TradeTime) as TradeTime,
|
|
2493
|
+
SecurityID,
|
|
2494
|
+
OpenPrice,
|
|
2495
|
+
PreCloPrice,
|
|
2496
|
+
HighPrice,
|
|
2497
|
+
LowPrice,
|
|
2498
|
+
LastPrice,
|
|
2499
|
+
PreCloseIOPV,
|
|
2500
|
+
IOPV,
|
|
2501
|
+
UpLimitPx,
|
|
2502
|
+
DownLimitPx,
|
|
2503
|
+
iif(deltas(HighPrice)>0.000001, 1, 0) as DeltasHighPrice,
|
|
2504
|
+
iif(abs(deltas(LowPrice))>0.000001, -1, 0) as DeltasLowPrice,
|
|
2505
|
+
iif(deltas(TotalVolumeTrade)==NULL, TotalVolumeTrade, deltas(TotalVolumeTrade)) as DeltasVolume,
|
|
2506
|
+
iif(deltas(TotalValueTrade)==NULL, TotalValueTrade, deltas(TotalValueTrade)) as DeltasTurnover,
|
|
2507
|
+
iif(deltas(NumTrades)==NULL, NumTrades, deltas(NumTrades)) as DeltasTradesCount
|
|
2508
|
+
from snapshot
|
|
2509
|
+
where TradeTime >= 09:25:00.000
|
|
2510
|
+
context by SecurityID
|
|
2511
|
+
|
|
2512
|
+
re = select firstNot(LastPrice, 0) as OpenPrice,
|
|
2513
|
+
high(DeltasHighPrice, HighPrice, LastPrice) as HighPrice,
|
|
2514
|
+
low(DeltasLowPrice, LowPrice, LastPrice) as LowPrice,
|
|
2515
|
+
last(LastPrice) as ClosePrice,
|
|
2516
|
+
sum(DeltasVolume) as Volume,
|
|
2517
|
+
sum(DeltasTurnover) as Turnover,
|
|
2518
|
+
sum(DeltasTradesCount) as TradesCount,
|
|
2519
|
+
last(PreCloPrice) as PreClosePrice,
|
|
2520
|
+
last(PreCloseIOPV) as PreCloseIOPV,
|
|
2521
|
+
last(IOPV) as IOPV,
|
|
2522
|
+
last(UpLimitPx) as UpLimitPx,
|
|
2523
|
+
last(DownLimitPx) as DownLimitPx,
|
|
2524
|
+
lastNot(LastPrice, 0)\firstNot(LastPrice, 0)-1 as FirstBarChangeRate
|
|
2525
|
+
from tempTB1
|
|
2526
|
+
group by SecurityID, TradeDate, interval(X=TradeTime, duration=60s, label='left', fill=0) as TradeTime
|
|
2527
|
+
|
|
2528
|
+
return re
|
|
2529
|
+
}
|
|
2530
|
+
```
|
|
2531
|
+
|
|
2532
|
+
然后利用 `mr` 函数指定 *parallel* 参数为 false
|
|
2533
|
+
进行分区串行计算。此处选取了一个月的数据进行演示,其中 `sqlDS` 函数可以根据指定的 SQL
|
|
2534
|
+
查询筛选数据,并按分区生成数据源列表。
|
|
2535
|
+
|
|
2536
|
+
```dolphindb
|
|
2537
|
+
beginDate = 2022.01.01
|
|
2538
|
+
endDate = 2022.01.31
|
|
2539
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
2540
|
+
tbName = "snapshot"
|
|
2541
|
+
|
|
2542
|
+
ds = sqlDS(<select * from loadTable(dbName, tbName) where TradeDate between beginDate and endDate>)
|
|
2543
|
+
re = mr(ds, calcKLine, , unionAll, false)
|
|
2544
|
+
|
|
2545
|
+
select top 10 * from re order by SecurityId
|
|
2546
|
+
|
|
2547
|
+
/* output:
|
|
2548
|
+
SecurityID TradeDate TradeTime OpenPrice HighPrice LowPrice ClosePrice Volume Turnover TradesCount ...
|
|
2549
|
+
---------- ---------- ------------ --------- --------- -------- ---------- ------ --------------------- ----------- ---
|
|
2550
|
+
000001 2022.01.04 09:30:00.000 1.6 1.794 1.064 1.3 0 10000.200000000000727 53 ...
|
|
2551
|
+
000001 2022.01.04 09:31:00.000 1.4 1.767 1.011 1.3 0 0 0 ...
|
|
2552
|
+
000001 2022.01.04 09:32:00.000 1.6 1.8 1.046 1.4 0 0 0 ...
|
|
2553
|
+
000001 2022.01.04 09:33:00.000 1.6 1.736 1.033 1.4 0 0 0 ...
|
|
2554
|
+
000001 2022.01.04 09:34:00.000 1.6 1.772 1.063 1.3 0 0 0 ...
|
|
2555
|
+
000001 2022.01.04 09:35:00.000 1.3 1.758 1.035 1.6 0 0.799999999999272 -41 ...
|
|
2556
|
+
000001 2022.01.04 09:36:00.000 1.4 1.784 1.013 1.5 0 0 0 ...
|
|
2557
|
+
000001 2022.01.04 09:37:00.000 1.4 1.79 1.006 1.5 0 0 0 ...
|
|
2558
|
+
000001 2022.01.04 09:38:00.000 1.6 1.781 1.024 1.5 0 0 0 ...
|
|
2559
|
+
000001 2022.01.04 09:39:00.000 1.5 1.697 1.024 1.6 0 0 0 ...
|
|
2560
|
+
*/
|
|
2561
|
+
```
|
|
2562
|
+
|
|
2563
|
+
### 6.5 时序分析
|
|
2564
|
+
|
|
2565
|
+
在金融领域,时间序列分析是一种重要的工具,它可以帮助理解数据的趋势、季节性、随机性等特征,并进行准确的预测。例如,在股票价格预测、货币汇率预测、通胀率预测等方面,时间序列分析被广泛应用于揭示金融数据随时间变化的规律。为应对此类场景,DolphinDB
|
|
2566
|
+
提供了滑动窗口、累积窗口、序列计算等内置函数,以及 Talib、MyTT 算子指标库和 Alpha
|
|
2567
|
+
因子库等模块,用户可以利用这些函数的组合和嵌套构建复杂的时序指标算子。
|
|
2568
|
+
|
|
2569
|
+
**例**:基于快照数据计算订单失衡率(SOIR)因子
|
|
2570
|
+
|
|
2571
|
+
该因子用于衡量买卖委托量在总量中的不均衡程度。t 时刻第 i 档的订单失衡率因子定义如下,具体参数说明参考 3.1.2 节。
|
|
2572
|
+
|
|
2573
|
+

|
|
2574
|
+
|
|
2575
|
+
使用 DolphinDB 的脚本实现上述因子的定义:此处使用 `rowWavg`
|
|
2576
|
+
函数计算各档加权平均的买卖委托量不均衡程度因子,即订单失衡率因子。并使用 moving 系列函数对一段时间的指标进行移动标准化处理。
|
|
2577
|
+
|
|
2578
|
+
```dolphindb
|
|
2579
|
+
def wavgSOIR(bidQty,askQty,lag=20){
|
|
2580
|
+
imbalance= rowWavg((bidQty - askQty)\(bidQty + askQty), 10 9 8 7 6 5 4 3 2 1).ffill().nullFill(0)
|
|
2581
|
+
mean = mavg(prev(imbalance), (lag-1), 2)
|
|
2582
|
+
std = mstdp(prev(imbalance) * 1000000, (lag-1), 2) \ 1000000
|
|
2583
|
+
return iif(std >= 0.0000001,(imbalance - mean) \ std, NULL).ffill().nullFill(0)
|
|
2584
|
+
}
|
|
2585
|
+
|
|
2586
|
+
re = select SecurityID, TradeDate, TradeTime, wavgSOIR(bidOrderQty, OfferOrderQty, lag=20) as HeightImbalance from loadTable(dbName, tbName) where TradeDate between beginDate and endDate context by SecurityID csort TradeTime
|
|
2587
|
+
|
|
2588
|
+
select top 10 * from re
|
|
2589
|
+
/* output:
|
|
2590
|
+
SecurityID TradeDate TradeTime HeightImbalance
|
|
2591
|
+
---------- ---------- ------------ ------------------
|
|
2592
|
+
000001 2022.01.04 09:30:00.000 0
|
|
2593
|
+
000001 2022.01.05 09:30:00.000 0
|
|
2594
|
+
000001 2022.01.06 09:30:00.000 -4.710845145045806
|
|
2595
|
+
000001 2022.01.07 09:30:00.000 10.571487776713668
|
|
2596
|
+
000001 2022.01.10 09:30:00.000 1.688837114535889
|
|
2597
|
+
000001 2022.01.04 09:30:03.000 -0.761301248682889
|
|
2598
|
+
000001 2022.01.05 09:30:03.000 -0.494321354433684
|
|
2599
|
+
000001 2022.01.06 09:30:03.000 -0.963245349720814
|
|
2600
|
+
000001 2022.01.07 09:30:03.000 1.708213822850803
|
|
2601
|
+
000001 2022.01.10 09:30:03.000 1.387502605818854
|
|
2602
|
+
*/
|
|
2603
|
+
```
|
|
2604
|
+
|
|
2605
|
+
### 6.6 截面计算
|
|
2606
|
+
|
|
2607
|
+
除了纵向的时序计算外,在金融场景下还需要横向对同一时间截面上不同股票的数据进行一些比较或计算。要对比同一截面不同股票的指标,就需要将原本的窄表进行一些行列转换,使之转成面板数据。为此,DolphinDB
|
|
2608
|
+
在 SQL 语义上拓展提供了 pivot by 语句,并开发了用于内存计算的
|
|
2609
|
+
`pivot`、`panel` 函数。
|
|
2610
|
+
|
|
2611
|
+
pivot 操作基于指定的维度(通常是时间和标的)将某一个属性值展开成面板数据,通常用于将一个窄表转换成宽表/矩阵,然后进行计算。
|
|
2612
|
+
|
|
2613
|
+

|
|
2614
|
+
|
|
2615
|
+
在 DolphinDB 中使用 exec+pivot by
|
|
2616
|
+
语句可以将一个表转换成一个面板矩阵,矩阵的行列标签记录了面板数据的维度信息。以一个简单的例子进行说明。
|
|
2617
|
+
|
|
2618
|
+
原表 t 定义如下:
|
|
2619
|
+
|
|
2620
|
+
```dolphindb
|
|
2621
|
+
sym = `C`MS`MS`MS`IBM`IBM`C`C`C
|
|
2622
|
+
price= 49.6 29.46 29.52 30.02 174.97 175.23 50.76 50.32 51.29
|
|
2623
|
+
qty = 2200 1900 2100 3200 6800 5400 1300 2500 8800
|
|
2624
|
+
timestamp = [09:34:07,09:35:42,09:36:51,09:36:59,09:35:47,09:36:26,09:34:16,09:35:26,09:36:12]
|
|
2625
|
+
t = table(timestamp, sym, qty, price);
|
|
2626
|
+
/* output:
|
|
2627
|
+
timestamp sym qty price
|
|
2628
|
+
--------- --- ---- -------------------
|
|
2629
|
+
09:34:07 C 2200 49.600000000000001
|
|
2630
|
+
09:35:42 MS 1900 29.46
|
|
2631
|
+
09:36:51 MS 2100 29.519999999999999
|
|
2632
|
+
09:36:59 MS 3200 30.019999999999999
|
|
2633
|
+
09:35:47 IBM 6800 174.969999999999998
|
|
2634
|
+
09:36:26 IBM 5400 175.229999999999989
|
|
2635
|
+
09:34:16 C 1300 50.759999999999997
|
|
2636
|
+
09:35:26 C 2500 50.32
|
|
2637
|
+
09:36:12 C 8800 51.289999999999999
|
|
2638
|
+
*/
|
|
2639
|
+
```
|
|
2640
|
+
|
|
2641
|
+
利用 exec + pivot by 将表 t 转成面板矩阵:
|
|
2642
|
+
|
|
2643
|
+
```dolphindb
|
|
2644
|
+
m = exec price from t pivot by timestamp, sym;
|
|
2645
|
+
m
|
|
2646
|
+
/* output:
|
|
2647
|
+
C IBM MS
|
|
2648
|
+
------------------ ------------------- ------------------
|
|
2649
|
+
09:34:07|49.600000000000001
|
|
2650
|
+
09:34:16|50.759999999999997
|
|
2651
|
+
09:35:26|50.32
|
|
2652
|
+
09:35:42| 29.46
|
|
2653
|
+
09:35:47| 174.969999999999998
|
|
2654
|
+
09:36:12|51.289999999999999
|
|
2655
|
+
09:36:26| 175.229999999999989
|
|
2656
|
+
09:36:51| 29.519999999999999
|
|
2657
|
+
09:36:59| 30.019999999999999
|
|
2658
|
+
*/
|
|
2659
|
+
|
|
2660
|
+
typestr m
|
|
2661
|
+
// output: 'FAST DOUBLE MATRIX'
|
|
2662
|
+
|
|
2663
|
+
m.colNames() // output: ["C","IBM","MS"]
|
|
2664
|
+
m.rowNames() // output: [09:34:07,09:34:16,09:35:26,09:35:42,09:35:47,09:36:12,09:36:26,09:36:51,09:36:59]
|
|
2665
|
+
```
|
|
2666
|
+
|
|
2667
|
+
了解了 pivot by 的基本使用,下面结合具体的金融数据进行举例。
|
|
2668
|
+
|
|
2669
|
+
**例**:根据每天每只股票最后的 LastPrice 价格计算排名。
|
|
2670
|
+
|
|
2671
|
+
此处 pivot by 用于指定截面的维度信息,此处是日期和股票代码,由于同一个日期对应多个数据,因此计算时可以配合聚合指标使用。
|
|
2672
|
+
|
|
2673
|
+
```dolphindb
|
|
2674
|
+
m = exec last(LastPrice) from loadTable(dbName, tbName) pivot by TradeDate, SecurityID
|
|
2675
|
+
rowRank(m)
|
|
2676
|
+
|
|
2677
|
+
/* output:
|
|
2678
|
+
000001 000002 000003 000004 000005 000006 000007 000008 000009 000010 000011 000012 000013 000014 000015 ...
|
|
2679
|
+
------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ---
|
|
2680
|
+
2022.01.04|87 0 26 26 0 26 58 26 87 0 26 26 0 0 58 ...
|
|
2681
|
+
2022.01.05|84 20 20 47 84 47 84 47 0 20 47 20 0 47 84 ...
|
|
2682
|
+
2022.01.06|84 17 84 84 84 47 17 17 47 47 84 47 17 0 47 ...
|
|
2683
|
+
2022.01.07|50 0 50 12 83 50 0 12 50 12 12 50 0 12 50 ...
|
|
2684
|
+
2022.01.10|45 15 15 15 15 74 74 0 45 15 74 15 74 45 74 ...
|
|
2685
|
+
...
|
|
2686
|
+
*/
|
|
2687
|
+
```
|
|
2688
|
+
|
|
2689
|
+
### 6.7 常见问题
|
|
2690
|
+
|
|
2691
|
+
1. 如何在写入分布式表时对数据进行去重?
|
|
2692
|
+
- TSDB 引擎 *sortColumns* 去重:系统会根据索引配置字段 *sortColumns*进行去重,但是该方式不适用于每个索引键(除最后一列时间列以外的 *sortColumns*字段构成索引键)对应的数据量很少的场景,因为索引键的主要作用是数据索引,若设置为去重键会造成索引膨胀,影响查询效率。
|
|
2693
|
+
- 使用 `upsert`! 方法写入数据:upsert! 支持设置数据键
|
|
2694
|
+
*keyColNames*,使用 `upsert!`
|
|
2695
|
+
写入新数据时,系统会去检查原有数据中该数据键是否已经存在,若存在则更新主键的数据,否则追加。通过该方式以达到数据去重的目的。
|
|
2696
|
+
2. 如何写脚本可以优化查询性能,查询很慢的原因是什么?
|
|
2697
|
+
|
|
2698
|
+
一个查询是否可以优化,主要是看以下的方面:
|
|
2699
|
+
|
|
2700
|
+
- 是否能够触发分区剪枝,缩小系统遍历范围? → where 条件是否可以改写为触发剪枝的条件
|
|
2701
|
+
- 是否走了分布式查询的优化? → 如果是自定义函数,无法进行分布式查询优化,是否可以通过 mr 函数进行逻辑改写。
|
|
2702
|
+
|
|
2703
|
+
查询慢的原因可以参考文档 [查询/写入慢](../omc/omc_slow_io_guidelines.html) 进行排查。
|
|
2704
|
+
3. 查询的字段调用了自定义的函数,会对性能有影响吗,会走分布式查询的优化吗?
|
|
2705
|
+
|
|
2706
|
+
如果没有通过 mapr
|
|
2707
|
+
关键字声明,则自定义函数无法进行分布式查询优化,此时有几种优化方案:
|
|
2708
|
+
|
|
2709
|
+
1. 计算数据不跨分区:在查询语句后添加 map 关键字。例如:`select first(id), count(*) from
|
|
2710
|
+
pt map`。
|
|
2711
|
+
2. 计算数据跨分区:通过函数 `mr` 定义分布式计算逻辑。参数 *mapFunc*
|
|
2712
|
+
指定函数会映射到各个分区进行执行,并将计算结果通过 reduceFunc 进行处理汇总后,通过 *finalFunc*
|
|
2713
|
+
进行最后的计算。案例参考 [通用计算](general_computing.html) 。
|
|
2714
|
+
4. 查询字段多造成脚本复杂,可以如何优化代码?
|
|
2715
|
+
|
|
2716
|
+
可以通过元编程或者字段序列的方式去定义脚本。
|
|
2717
|
+
|
|
2718
|
+
例:查询字段 col000~col999
|
|
2719
|
+
的数据
|
|
2720
|
+
|
|
2721
|
+
```dolphindb
|
|
2722
|
+
// 元编程
|
|
2723
|
+
cols="col" + lpad(string(0..999), 3, "0")
|
|
2724
|
+
<select _$$cols from t>.eval()
|
|
2725
|
+
|
|
2726
|
+
// 字段序列
|
|
2727
|
+
select col000...col999 from t
|
|
2728
|
+
```
|
|
2729
|
+
|
|
2730
|
+
字段序列对于字段名和查询场景都有限制,与之相比元编程的使用范围更广。
|
|
2731
|
+
|
|
2732
|
+
例:计算多个字段的最小二乘回归。
|
|
2733
|
+
|
|
2734
|
+
```dolphindb
|
|
2735
|
+
colName = "y"
|
|
2736
|
+
x = `SH000001`SH000003`SH000005
|
|
2737
|
+
<select ols(_$colName, _$$x, 1, 2).Residual as residual from t>.eval()
|
|
2738
|
+
```
|
|
2739
|
+
|
|
2740
|
+
具体用法请参考
|
|
2741
|
+
[基于
|
|
2742
|
+
SQL 的元编程](macro_var_based_metaprogramming.html) 。
|
|
2743
|
+
5. 如何进行表关联后只保留公共匹配列?
|
|
2744
|
+
|
|
2745
|
+
DolphinDB
|
|
2746
|
+
中表关联的结果会将两边公共列拆成两列返回,例如:
|
|
2747
|
+
|
|
2748
|
+
```dolphindb
|
|
2749
|
+
t1= table(1 2 3 as id, 7.8 4.6 5.1 as value)
|
|
2750
|
+
t2 = table(1 3 5 as id, 300 500 800 as qty)
|
|
2751
|
+
fj(t1, t2, `id)
|
|
2752
|
+
/* output:
|
|
2753
|
+
id value t2_id qty
|
|
2754
|
+
-- ----- ----- ---
|
|
2755
|
+
1 7.8 1 300
|
|
2756
|
+
2 4.6
|
|
2757
|
+
3 5.1 3 500
|
|
2758
|
+
5 800
|
|
2759
|
+
*/
|
|
2760
|
+
```
|
|
2761
|
+
|
|
2762
|
+
如果需要将公共列 id
|
|
2763
|
+
合成一列返回,可以参考下述脚本:
|
|
2764
|
+
|
|
2765
|
+
```dolphindb
|
|
2766
|
+
select t1.id.nullFill(t2.id) as id, value, qty from fj(t1, t2, `id)
|
|
2767
|
+
```
|
|
2768
|
+
6. 共享表怎么删除,调用 `dropTable` 函数不起作用?
|
|
2769
|
+
|
|
2770
|
+
dropTable
|
|
2771
|
+
用于删除分布式表,对于共享内存表可以用 `undef("st", SHARED)` 进行删除。
|
|
2772
|
+
7. update 和 delete 的事务开销很大,这是为什么?
|
|
2773
|
+
|
|
2774
|
+
DolphinDB
|
|
2775
|
+
的分布式数据是按照列式存储(OLAP)或者行列混存(TSDB)的,对于行级别的更新和删除操作,系统以分区为单位读出相关字段的数据到内存,然后进行更新和删除再写回磁盘。因此,如果事务涉及的分区多、分区数据量大,更新和删除的开销也会很大。
|
|
2776
|
+
|
|
2777
|
+
如果数据以
|
|
2778
|
+
TSDB 引擎进行存储,则在某些特定场景和配置下,其更新和删除操作有优化:
|
|
2779
|
+
|
|
2780
|
+
- 设置去重策略 keepDuplicates=LAST 时,数据更新以数据追加方式进行。
|
|
2781
|
+
- 设置去重策略 keepDuplicates=LAST 并开启软删除机制
|
|
2782
|
+
softDelete=true,则删除操作时,系统取出待删除的数据打上删除标记(软删除),再以追加的方式写回数据库。
|
|
2783
|
+
|
|
2784
|
+
上述两种优化后的更新和删除方式效率更高。
|
|
2785
|
+
8. 1. 如何编写查询脚本,使之可以通过命中内部维护的元数据信息,从而加速查询性能?
|
|
2786
|
+
|
|
2787
|
+
DolphinDB 内部维护了分区信息、TSDB
|
|
2788
|
+
引擎还额外维护了 zonemap、sortKey
|
|
2789
|
+
等信息。理论上可以通过此类元数据信息加速相关的查询。下面以具体的例子进行说明:
|
|
2790
|
+
|
|
2791
|
+
**例
|
|
2792
|
+
1:**查询分区字段的元数据信息。
|
|
2793
|
+
|
|
2794
|
+
场景:按照日期(天)和股票代码的 COMPO
|
|
2795
|
+
分区,获取所有日期(天)值。
|
|
2796
|
+
|
|
2797
|
+
以 4.2.1 导入的快照数据表 snapshot
|
|
2798
|
+
为例,该表的结构为:
|
|
2799
|
+
|
|
2800
|
+
```dolphindb
|
|
2801
|
+
engineType->TSDB
|
|
2802
|
+
keepDuplicates->ALL
|
|
2803
|
+
chunkGranularity->TABLE
|
|
2804
|
+
sortColumns->["SecurityID","TradeTime"]
|
|
2805
|
+
softDelete->0
|
|
2806
|
+
tableOwner->admin
|
|
2807
|
+
compressMethods->name compressMethods
|
|
2808
|
+
------------------ ---------------
|
|
2809
|
+
TradeDate delta
|
|
2810
|
+
TradeTime delta
|
|
2811
|
+
MDStreamID lz4
|
|
2812
|
+
SecurityID lz4
|
|
2813
|
+
...
|
|
2814
|
+
|
|
2815
|
+
tableComment->
|
|
2816
|
+
colDefs->name typeString typeInt extra comment
|
|
2817
|
+
------------------ ---------- ------- ----- ------------
|
|
2818
|
+
TradeDate DATE 6 交易日期
|
|
2819
|
+
TradeTime TIME 8 交易时间
|
|
2820
|
+
MDStreamID SYMBOL 17
|
|
2821
|
+
...
|
|
2822
|
+
|
|
2823
|
+
chunkPath->
|
|
2824
|
+
partitionColumnIndex->[0,3]
|
|
2825
|
+
partitionColumnName->["TradeDate","SecurityID"]
|
|
2826
|
+
partitionColumnType->[6,17]
|
|
2827
|
+
partitionType->[1,5]
|
|
2828
|
+
partitionTypeName->["VALUE","HASH"]
|
|
2829
|
+
partitionSchema->([2022.01.04,2022.01.05,2022.01.06,2022.01.07,2022.01.10,2022.01.11,2022.01.12,2022.01.13,2022.01.14,2022.01.17,2022.01.18,2022.01.19,2022.01.20,2022.01.21,2022.01.24,2022.01.25,2022.01.26,2022.01.27,2022.01.28,2022.02.07,2022.02.08,2022.02.09,2022.02.10,2022.02.11,2022.02.14,2022.02.15,2022.02.16,2022.02.17,2022.02.18,2022.02.21...],50)
|
|
2830
|
+
partitionSites->
|
|
2831
|
+
```
|
|
2832
|
+
|
|
2833
|
+
分别利用三种方式求所有数据日期的唯一值:
|
|
2834
|
+
|
|
2835
|
+
```dolphindb
|
|
2836
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
2837
|
+
tbName = "snapshot"
|
|
2838
|
+
pt = loadTable(dbName, tbName)
|
|
2839
|
+
|
|
2840
|
+
// (1)直接利用 distinct 函数求日期唯一值
|
|
2841
|
+
timer dateList = exec distinct(TradeDate) from pt
|
|
2842
|
+
// Time elapsed: 670.988 ms
|
|
2843
|
+
|
|
2844
|
+
// (2)利用 group by 的分布式计算求日期唯一值
|
|
2845
|
+
timer dateList = exec TradeDate from select count(*) from pt group by TradeDate
|
|
2846
|
+
// Time elapsed: 373.783 ms
|
|
2847
|
+
|
|
2848
|
+
// (3)利用元数据信息求日期的唯一值
|
|
2849
|
+
timer{
|
|
2850
|
+
result = exec dfsPath from getTabletsMeta( dbName[5:]+ "/%", tbName, false, -1) where rowNum != 0
|
|
2851
|
+
dateList = substr(result, regexFind(result, "[0-9]{8}"), 8).distinct().temporalParse("yyyyMMdd").sort()
|
|
2852
|
+
}
|
|
2853
|
+
// Time elapsed: 35.623 ms
|
|
2854
|
+
```
|
|
2855
|
+
|
|
2856
|
+
比较查询耗时可以发现方案 3 性能最佳,因为它是通过直接解析分区元数据获取日期信息的。
|
|
2857
|
+
|
|
2858
|
+
如果创建数据库时,设置的 VALUE
|
|
2859
|
+
分区方案包含在数据范围内,则利用 VALUE 分区自动拓展的特性,可以通过 schema 函数直接获取日期分区字段的值。
|
|
2860
|
+
|
|
2861
|
+
本例中
|
|
2862
|
+
snapshot
|
|
2863
|
+
表的分区信息可以通过`schema(pt).partitionSchema[0]`获取,获取结果是长度为 244
|
|
2864
|
+
的向量,较真实的场景多了 2 天,因为 2024.01.01 和 2024.01.02 这两天也被包含了。这是由于在创建数据库时,
|
|
2865
|
+
snapshot 的建库语句为:`create database "dfs://stock_lv2_snapshot"
|
|
2866
|
+
partitioned by VALUE(2024.01.01..2024.01.02), HASH([SYMBOL, 50]),
|
|
2867
|
+
engine='TSDB'`,其中指定的 `2024.01.01..2024.01.02`
|
|
2868
|
+
也被纳入了元数据信息中,即使该分区并无数据。
|
|
2869
|
+
|
|
2870
|
+
利用该特性,我们在创建数据库时指定必然有数据的天作为分区 scheme,例如
|
|
2871
|
+
`create database "dfs://stock_lv2_snapshot" partitioned by
|
|
2872
|
+
VALUE(2022.01.04..2022.01.04), HASH([SYMBOL, 50]),
|
|
2873
|
+
engine='TSDB'`,这样就可以直接借助 schema 函数更方便地获取元数据信息。
|
|
2874
|
+
|
|
2875
|
+
**例
|
|
2876
|
+
2:**限 TSDB 引擎:查询 count, min, max, sum 等 zonemap
|
|
2877
|
+
包含的元数据信息。
|
|
2878
|
+
|
|
2879
|
+
zonemap 存储了数据的预聚合信息(每列每个 sortKey 对应数据的
|
|
2880
|
+
min,max,sum,notnullcount)。如果查询语句包含 count, min, max, sum
|
|
2881
|
+
等预聚合指标,且用户于设置去重策略(keepDuplicates=ALL),就可以利用 zonemap
|
|
2882
|
+
进行提速。
|
|
2883
|
+
|
|
2884
|
+
不同去重策略下,查询的性能对比见 [TSDB 存储引擎详解](tsdb_explained.html#52-level-file-%E6%95%B0%E9%87%8F%E5%AF%B9%E6%9F%A5%E8%AF%A2%E6%80%A7%E8%83%BD%E7%9A%84%E5%BD%B1%E5%93%8D) 5.2 节查询全表总记录数(命中元数据)部分。对于 ALL
|
|
2885
|
+
去重策略,由于查询时无需去重,直接利用 zonemap 提速性能最高。
|
|
2886
|
+
|
|
2887
|
+

|
|
2888
|
+
|
|
2889
|
+
**例
|
|
2890
|
+
3:**限 TSDB 引擎:查询条件命中 sortKey
|
|
2891
|
+
索引数据。
|
|
2892
|
+
|
|
2893
|
+
```dolphindb
|
|
2894
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
2895
|
+
tbName = "snapshot"
|
|
2896
|
+
pt = loadTable(dbName, tbName)
|
|
2897
|
+
|
|
2898
|
+
select [HINT_EXPLAIN] * from pt where SecurityID in ["000076", "000024"]
|
|
2899
|
+
|
|
2900
|
+
// output:
|
|
2901
|
+
...
|
|
2902
|
+
"explain": {
|
|
2903
|
+
"where": {
|
|
2904
|
+
"TSDBIndexPrefiltering": {
|
|
2905
|
+
"blocksToBeScanned": 60, // 扫描的 block 个数
|
|
2906
|
+
"matchedWhereConditions": 1 // 命中 sortKey 的过滤条件
|
|
2907
|
+
},
|
|
2908
|
+
...
|
|
2909
|
+
```
|
|
2910
|
+
|
|
2911
|
+
可以通过 [HINT\_EXPLAIN] 执行计划观察查询的过滤条件是否命中索引。
|
|
2912
|
+
|
|
2913
|
+
### 6.8 下一步阅读
|
|
2914
|
+
|
|
2915
|
+
- 分区剪枝:[查询数据](../db_distr_comp/db_oper/queries.html)
|
|
2916
|
+
[SQL 执行计划](DolphinDB_Explain.html)
|
|
2917
|
+
- SQL 操作:[量化金融范例](quant_finance_examples.html)
|
|
2918
|
+
[深度不平衡、买卖压力指标、波动率计算](sql_performance_optimization_wap_di_rv.html)
|
|
2919
|
+
- 聚合计算:[K 线计算](OHLC.html)
|
|
2920
|
+
[基于快照行情的股票和基金 K 线合成](k.html)
|
|
2921
|
+
- 时序计算:[窗口计算](window_cal.html)
|
|
2922
|
+
[处理 Level-2
|
|
2923
|
+
行情数据实例](l2_stk_data_proc.html)
|
|
2924
|
+
- 截面计算:[面板数据处理](panel_data.html)
|
|
2925
|
+
|
|
2926
|
+
## 7. 流数据计算
|
|
2927
|
+
|
|
2928
|
+
为了便于用户快速入门和理解,本章主要介绍流数据的一些基础概念、框架和流程。结合 API 订阅流数据、消息中间件获取流数据、流引擎计算等具体案例,进一步了解流计算在
|
|
2929
|
+
DolphinDB 中的应用。
|
|
2930
|
+
|
|
2931
|
+
本章涉及到的库表有:
|
|
2932
|
+
|
|
2933
|
+
- 基于 3.3 节创建的 "dfs://stock\_lv2\_snapshot" 库下的快照表 snapshot
|
|
2934
|
+
- 基于 4.2.3 节创建的 "dfs://stock\_trade" 库下的逐笔成交表 trade
|
|
2935
|
+
|
|
2936
|
+
本章涉及到流表持久化,需要在 server 配置文件(单机:dolphindb.cfg 集群:cluster.cfg)添加配置项 persistenceDir。
|
|
2937
|
+
|
|
2938
|
+

|
|
2939
|
+
|
|
2940
|
+
### 7.1 流数据和流计算的定义
|
|
2941
|
+
|
|
2942
|
+
流数据是基于事件持续生成的时间序列数据。与静态有界的历史数据不同,流数据具有以下特点:
|
|
2943
|
+
|
|
2944
|
+
- **动态:**数据流持续动态生成,流的结束没有明确定义,数据的大小与结构也没有固定限制。
|
|
2945
|
+
- **有序:**每条流数据记录都具有时间戳或者序列号,标识了数据在流中的位置与顺序。
|
|
2946
|
+
- **大规模:**流数据通常以高速率生成,数据规模大,对处理引擎的并行处理性能和可扩展性有更高要求。
|
|
2947
|
+
- **强时效:**流数据的强时效性要求极低延迟的读取和处理能力,以最大化数据价值,驱动实时业务决策。
|
|
2948
|
+
|
|
2949
|
+
流数据处理是指在实时数据流上进行实时计算和分析的过程,也称为流计算。与批处理不同,流处理无需等待所有数据全部到位,即可按照时间顺序对数据进行增量处理。这种实时处理方式能够高效利用存储与计算资源,适用于需要快速响应和及时决策的应用场景。
|
|
2950
|
+
|
|
2951
|
+
表 7-1 批计算和流计算对比
|
|
2952
|
+
|
|
2953
|
+
| | **批处理** | **流处理** |
|
|
2954
|
+
| --- | --- | --- |
|
|
2955
|
+
| **数据范围** | 对数据集中的所有或大部分数据进行查询或处理 | 对时间窗口内的数据或对最近的数据记录进行查询或处理 |
|
|
2956
|
+
| **数据大小** | 大批量数据 | 单条记录或包含几条记录的小批量数据 |
|
|
2957
|
+
| **性能** | 几分钟至几小时的延迟 | 亚毫秒级延迟 |
|
|
2958
|
+
|
|
2959
|
+
### 7.2 发布-订阅
|
|
2960
|
+
|
|
2961
|
+
#### 7.2.1 发布-订阅模型
|
|
2962
|
+
|
|
2963
|
+
DolphinDB
|
|
2964
|
+
采用了经典的发布-订阅(Pub-Sub)通信模型,通过消息队列实现流数据的发布与订阅,将流数据生产者(发布者)与消费者(订阅者)解耦。这种模式促进了系统内不同组件之间的通信,提高可伸缩性,改善发送者的响应能力。
|
|
2965
|
+
|
|
2966
|
+

|
|
2967
|
+
|
|
2968
|
+
- 发布数据:发布端在每个节点上维护一个发布队列。当新的流数据注入到该节点的流数据发布表时,DolphinDB
|
|
2969
|
+
会将这些数据发送到相应的消息发布队列,再由发布线程将数据发布到各个订阅端的消费队列。
|
|
2970
|
+
- 订阅数据:每个订阅线程对应一个消费队列。订阅成功提交后,每当有新数据写入流数据发布表时,DolphinDB
|
|
2971
|
+
会主动通知所有订阅方,订阅线程从消费队列中获取数据进行增量处理。
|
|
2972
|
+
|
|
2973
|
+
当发布端发布大量消息造成订阅端来不及处理时,消息会在消费队列进行累积,若消费队列满了,则会反压到发布队列,若发布队列也满了,则会阻塞写入。
|
|
2974
|
+
|
|
2975
|
+
#### 7.2.2 发布-订阅流程
|
|
2976
|
+
|
|
2977
|
+

|
|
2978
|
+
|
|
2979
|
+
在实际金融场景下,一个完整发布-订阅流程:(1)行情数据发布到(写入)流表;(2)用户订阅流表进行计算;(3)计算结果通过
|
|
2980
|
+
API、插件等发布到其他第三方平台,例如可视化平台展示、下游数据对接等等。
|
|
2981
|
+
|
|
2982
|
+
**流数据发布**
|
|
2983
|
+
|
|
2984
|
+
在环节 (1)中,用户通常通过行情插件、消息中间件或 API
|
|
2985
|
+
将外部订阅的流数据写入流表,或者也可以通过数据回放历史数据写入流表。前者通常应用在实时计算场景,而回放通常是在回测场景使用的。
|
|
2986
|
+
|
|
2987
|
+
- 行情插件:华锐 [amdQuote](../plugins/amdquote/amdquote.html), 华泰 [INSIGHT](../plugins/insight/insight.html), 恒生 [NSQ](../plugins/nsq/nsq.html), 盛立 [EFH](../plugins/efh.html), 中金 [DataFeed](../plugins/datafeed.html),
|
|
2988
|
+
[CTP](../plugins/ctp.html), [XTP](../plugins/xtp.html), [SSEQuotationFile](../plugins/SSEQuotationFile.html) 等。
|
|
2989
|
+
- 消息中间件插件:[Kafka](../plugins/kafka/kafka.html), [zmq](../plugins/zmq/zmq.html), [mqtt](../plugins/mqtt/mqtt.html), [RabbitMQ](../plugins/rabbitMQ.html), [RocketMQ](../plugins/rocketMQ.html) 等。
|
|
2990
|
+
- API:Python, C++, Java, Go, R, JavaScript 等。
|
|
2991
|
+
|
|
2992
|
+

|
|
2993
|
+
|
|
2994
|
+
**例 1:**回放历史快照表模拟实时数据写入场景。
|
|
2995
|
+
|
|
2996
|
+
历史数据回放主要分为2个步骤:
|
|
2997
|
+
|
|
2998
|
+
1. `replayDS` 函数根据历史数据生成回放数据源。
|
|
2999
|
+
2. `replay` 函数回放历史数据源到目标表对象或流计算引擎。
|
|
3000
|
+
|
|
3001
|
+
```dolphindb
|
|
3002
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
3003
|
+
tbName = "snapshot"
|
|
3004
|
+
|
|
3005
|
+
// 从历史数据生成回放数据源
|
|
3006
|
+
beginDate = 2022.01.01
|
|
3007
|
+
endDate = 2022.01.31
|
|
3008
|
+
ds = replayDS(<select * from loadTable(dbName, tbName) where TradeDate between beginDate and endDate>, dateColumn="TradeDate", timeColumn="TradeTime")
|
|
3009
|
+
|
|
3010
|
+
// 定义流计算表
|
|
3011
|
+
colName=loadTable(dbName, tbName).schema().colDefs.name
|
|
3012
|
+
colType=loadTable(dbName, tbName).schema().colDefs.typeString
|
|
3013
|
+
t = streamTable(100:0, colName, colType);
|
|
3014
|
+
|
|
3015
|
+
// 持久化流表
|
|
3016
|
+
enableTableShareAndPersistence(table=t, tableName="st1", cacheSize=100000)
|
|
3017
|
+
go
|
|
3018
|
+
|
|
3019
|
+
// 回放流表
|
|
3020
|
+
replay(inputTables=ds, outputTables="st1", dateColumn="TradeDate", timeColumn="TradeTime", replayRate=100000, absoluteRate=true)
|
|
3021
|
+
```
|
|
3022
|
+
|
|
3023
|
+
**例 2:**通过 Python API 将上游流数据实时写入流表。
|
|
3024
|
+
|
|
3025
|
+
本脚本使用的测试数据文件如下,解压到自己的目录后,请替换脚本中的 `data_path`:
|
|
3026
|
+
|
|
3027
|
+
[2022.01.04.zip](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/2022.01.04.zip)
|
|
3028
|
+
|
|
3029
|
+
通过 Python API 将上游数据写入流表一般分为个步骤:
|
|
3030
|
+
|
|
3031
|
+
1. 建立到 DolphinDB 数据库的连接。
|
|
3032
|
+
2. 确保 DolphinDB 端订阅的流表已经建立并且存在。
|
|
3033
|
+
3. 初始化 `MultithreadedTableWriter(MTW)`对象,建立 API 和 server
|
|
3034
|
+
端流表的连接(dbName 指定为流表名称),并通过 MTW.insert 接口写入数据。
|
|
3035
|
+
4. 等待数据完全写入并打印写入结果。
|
|
3036
|
+
|
|
3037
|
+
本例中上游的历史数据是通过遍历 csv 数据模拟的,用户可以将该部分替换成其他数据源,例如 kafka 数据,参考例 3。
|
|
3038
|
+
|
|
3039
|
+
```dolphindb
|
|
3040
|
+
import dolphindb as ddb
|
|
3041
|
+
import numpy as np
|
|
3042
|
+
import pandas as pd
|
|
3043
|
+
import dolphindb.settings as keys
|
|
3044
|
+
|
|
3045
|
+
# 建立 API 和 server 之间的连接
|
|
3046
|
+
s = ddb.session()
|
|
3047
|
+
conn = s.connect(host="ecosystem", port=8440, userid="admin", password="123456")
|
|
3048
|
+
# 替换为自己的 ip/port
|
|
3049
|
+
|
|
3050
|
+
if conn:
|
|
3051
|
+
print("successfully connected!")
|
|
3052
|
+
|
|
3053
|
+
# 定义用于写入的持久化流表
|
|
3054
|
+
spt = """
|
|
3055
|
+
dropStreamTable("st2")
|
|
3056
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
3057
|
+
tbName = "snapshot"
|
|
3058
|
+
|
|
3059
|
+
colName=loadTable(dbName, tbName).schema().colDefs.name
|
|
3060
|
+
colType=loadTable(dbName, tbName).schema().colDefs.typeString
|
|
3061
|
+
t = streamTable(100:0, colName, colType);
|
|
3062
|
+
enableTableShareAndPersistence(table=t, tableName="st2", cacheSize=100000)
|
|
3063
|
+
"""
|
|
3064
|
+
s.run(spt)
|
|
3065
|
+
|
|
3066
|
+
# 通过遍历 csv 数据模拟上层实时数据写入
|
|
3067
|
+
# csv 文件和 python 客户端处于同一台服务器
|
|
3068
|
+
data_path = "<YOUR_PATH>/2022.01.04.csv"
|
|
3069
|
+
df = pd.read_csv(data_path)
|
|
3070
|
+
|
|
3071
|
+
# 数据预处理:字段类型转换
|
|
3072
|
+
df["Securityid"] = df["Securityid"].astype('str').apply(lambda x: x.zfill(6))
|
|
3073
|
+
df["TradeDate"] = pd.to_datetime(df["TradeDate"], format='%Y.%m.%d')
|
|
3074
|
+
df["TradeTime"] = pd.to_datetime(df["TradeTime"] , format='%H:%M:%S.%f')
|
|
3075
|
+
df["LocalTime"] = pd.to_datetime(df["LocalTime"] , format='%H:%M:%S.%f')
|
|
3076
|
+
df["OfferPrice"] = df["OfferPrice"].apply(lambda str: [float(x) if x.strip() else np.NaN for x in str.split(',')])
|
|
3077
|
+
df["BidPrice"] = df["BidPrice"].apply(lambda str: [float(x) if x.strip() else np.NaN for x in str.split(',')])
|
|
3078
|
+
df["OfferOrderQty"] = df["OfferOrderQty"].apply(lambda str: [int(x) if x.strip() else None for x in str.split(',')])
|
|
3079
|
+
df["BidOrderQty"] = df["BidOrderQty"].apply(lambda str: [int(x) if x.strip() else None for x in str.split(',')])
|
|
3080
|
+
df["BidNumOrders"] = df["BidNumOrders"].apply(lambda str: [int(x) if x.strip() else None for x in str.split(',')])
|
|
3081
|
+
df["OfferNumOrders"] = df["OfferNumOrders"].apply(lambda str: [int(x) if x.strip() else None for x in str.split(',')])
|
|
3082
|
+
df["OfferOrder"] = df["OfferOrder"].apply(lambda str: [int(x) if x.strip() else None for x in str.split(',')])
|
|
3083
|
+
df["BidOrder"] = df["BidOrder"].apply(lambda str: [int(x) if x.strip() else None for x in str.split(',')])
|
|
3084
|
+
|
|
3085
|
+
writer = ddb.MultithreadedTableWriter(host="ecosystem", port=8440, userId="admin", password="123456", dbPath="", tableName="st2", threadCount=1)
|
|
3086
|
+
|
|
3087
|
+
# 数据写入:通过循环模拟实时数据逐条接入
|
|
3088
|
+
for row in df.itertuples(index=False):
|
|
3089
|
+
data = tuple(row)
|
|
3090
|
+
tmp = writer.insert(*data)
|
|
3091
|
+
# 如有写入错误打印错误代码和错误信息
|
|
3092
|
+
if(tmp.hasError()):
|
|
3093
|
+
print(tmp.errorCode + ": " + tmp.errorInfo)
|
|
3094
|
+
|
|
3095
|
+
# 等待写入完成
|
|
3096
|
+
writer.waitForThreadCompletion()
|
|
3097
|
+
|
|
3098
|
+
# 打印写入整体状态
|
|
3099
|
+
res = writer.getStatus()
|
|
3100
|
+
print(res)
|
|
3101
|
+
|
|
3102
|
+
# 打印最终写入结果
|
|
3103
|
+
if res.succeed():
|
|
3104
|
+
print("Data successfully written.")
|
|
3105
|
+
```
|
|
3106
|
+
|
|
3107
|
+
**例 3:**在 Python 端通过 kafka 消息中间件将上游流数据实时写入流表。
|
|
3108
|
+
|
|
3109
|
+
本教程提取部分历史数据导入 kafka 中进行测试,测试数据文件如下:
|
|
3110
|
+
|
|
3111
|
+
[snap\_json\_kafka.txt](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/snap_json_kafka.txt)
|
|
3112
|
+
|
|
3113
|
+
[2022.01.04.zip](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/2022.01.04.zip)
|
|
3114
|
+
|
|
3115
|
+
与例 2 相比,本例只是将数据源替换成了 Kafka 插件端接收的数据,因此其大致流程和例 2 相同,也是分为下述步骤:
|
|
3116
|
+
|
|
3117
|
+
1. 建立到 DolphinDB 数据库的连接。
|
|
3118
|
+
2. 确保 DolphinDB 端订阅的流表已经建立并且存在。
|
|
3119
|
+
3. 创建一个KafkaConsumer对象,并指定要消费的topic。
|
|
3120
|
+
4. 初始化 `MultithreadedTableWriter(MTW)`对象,建立 API 和 server
|
|
3121
|
+
端流表的连接(dbName 指定为流表名称),逐条消费并处理 kafka 端的数据,并通过 MTW.insert 接口写入数据。
|
|
3122
|
+
|
|
3123
|
+
```dolphindb
|
|
3124
|
+
from kafka import KafkaConsumer, TopicPartition
|
|
3125
|
+
import json
|
|
3126
|
+
from json import JSONDecodeError
|
|
3127
|
+
import dolphindb as ddb
|
|
3128
|
+
import numpy as np
|
|
3129
|
+
import pandas as pd
|
|
3130
|
+
import dolphindb.settings as keys
|
|
3131
|
+
|
|
3132
|
+
# 建立 API 和 server 之间的连接
|
|
3133
|
+
s = ddb.session()
|
|
3134
|
+
conn = s.connect(host="ecosystem", port=8440, userid="admin", password="123456")
|
|
3135
|
+
# 替换自己的 ip/port
|
|
3136
|
+
|
|
3137
|
+
if conn:
|
|
3138
|
+
print("successfully connected!")
|
|
3139
|
+
|
|
3140
|
+
# 定义用于写入的持久化流表
|
|
3141
|
+
spt = """
|
|
3142
|
+
try{dropStreamTable("st3")}catch(ex){writeLog(ex)}
|
|
3143
|
+
|
|
3144
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
3145
|
+
tbName = "snapshot"
|
|
3146
|
+
|
|
3147
|
+
colName=loadTable(dbName, tbName).schema().colDefs.name
|
|
3148
|
+
colType=loadTable(dbName, tbName).schema().colDefs.typeString
|
|
3149
|
+
t = streamTable(100:0, colName, colType);
|
|
3150
|
+
enableTableShareAndPersistence(table=t, tableName="st3", cacheSize=100000)
|
|
3151
|
+
"""
|
|
3152
|
+
s.run(spt)
|
|
3153
|
+
|
|
3154
|
+
##### 上述脚本可在 DolphinDB 端实现 #####
|
|
3155
|
+
|
|
3156
|
+
# 定义Kafka集群的地址和topic名称
|
|
3157
|
+
bootstrap_servers = ['183.134.101.143:9092']
|
|
3158
|
+
topic = 'snapshot'
|
|
3159
|
+
|
|
3160
|
+
# 创建一个KafkaConsumer对象,并指定要消费的topic
|
|
3161
|
+
consumer = KafkaConsumer(topic, bootstrap_servers=bootstrap_servers,
|
|
3162
|
+
auto_offset_reset='earliest',
|
|
3163
|
+
enable_auto_commit=True,
|
|
3164
|
+
value_deserializer=lambda m: json.loads(m) if m else None
|
|
3165
|
+
)
|
|
3166
|
+
|
|
3167
|
+
# 创建 MTW 对象用于实时写入流数据
|
|
3168
|
+
writer = ddb.MultithreadedTableWriter(host="ecosystem", port=8440, userId="admin", password="123456", dbPath="", tableName="st3", threadCount=1, batchSize=100)
|
|
3169
|
+
|
|
3170
|
+
# 消费 kafka 中的数据写入流表
|
|
3171
|
+
for message in consumer:
|
|
3172
|
+
try:
|
|
3173
|
+
msg = message.value
|
|
3174
|
+
msg['TradeDate']=pd.to_datetime(msg["TradeDate"], format='%Y.%m.%d')
|
|
3175
|
+
msg["TradeTime"] = pd.to_datetime(msg["TradeTime"] , format='%H:%M:%S.%f')
|
|
3176
|
+
msg["LocalTime"] = pd.to_datetime(msg["LocalTime"] , format='%H:%M:%S.%f')
|
|
3177
|
+
data = tuple(msg.values())
|
|
3178
|
+
tmp = writer.insert(*data)
|
|
3179
|
+
if(tmp.hasError()):
|
|
3180
|
+
print(tmp.errorCode + ": " + tmp.errorInfo)
|
|
3181
|
+
except Exception:
|
|
3182
|
+
print("Received invalid JSON message:", message)
|
|
3183
|
+
```
|
|
3184
|
+
|
|
3185
|
+
**流数据订阅**
|
|
3186
|
+
|
|
3187
|
+
流数据发布之后就来到了环节(2)流数据订阅,用户可以通过函数 `subscribeTable`
|
|
3188
|
+
订阅流数据表中的数据,并且在订阅时,可以通过设置 `subscribeTable` 函数的参数
|
|
3189
|
+
*handler* 来配置消息处理机制。
|
|
3190
|
+
|
|
3191
|
+
关键参数配置:
|
|
3192
|
+
|
|
3193
|
+
- *batchSize*:每隔多少条消息处理一次
|
|
3194
|
+
- *throttle*:每隔多少秒处理一次
|
|
3195
|
+
- *handler*:设置订阅消息注入对象,可以是消息处理函数、流计算引擎、数据表
|
|
3196
|
+
- *offset*:订阅消息的偏移量,可选机制:
|
|
3197
|
+
- -2:适用于持久化流表订阅。获取持久化到磁盘上的 *offset*,并从该位置开始订阅
|
|
3198
|
+
- -1:从发起订阅后的下一条数据开始订阅
|
|
3199
|
+
- n(n >= 0):从第 n 条数据开始订阅
|
|
3200
|
+
- *reconnect*:流订阅中断时,自动重新订阅
|
|
3201
|
+
|
|
3202
|
+
DolphinDB 不仅支持 server 端节点之间的订阅,而且支持通过第三方 API 订阅 DolphinDB
|
|
3203
|
+
流表数据,推送给下游的其他平台。下面我们结合几个具体的案例进行说明。
|
|
3204
|
+
|
|
3205
|
+
**例 1:**在 server 端订阅流数据,进行数据处理后入库。
|
|
3206
|
+
|
|
3207
|
+
执行代码前,可以初始化定义一些变量并清理执行环境。
|
|
3208
|
+
|
|
3209
|
+
```dolphindb
|
|
3210
|
+
undef all
|
|
3211
|
+
go
|
|
3212
|
+
|
|
3213
|
+
// 变量定义
|
|
3214
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
3215
|
+
tbName = "snapshot"
|
|
3216
|
+
tbName1 = "snapshot_trade"
|
|
3217
|
+
|
|
3218
|
+
// 清理环境
|
|
3219
|
+
try{
|
|
3220
|
+
dropTable(database(dbName), tbName1)
|
|
3221
|
+
// 删除流表前需要取消该表所有的订阅
|
|
3222
|
+
unsubscribeTable(tableName="snap1", actionName="subAndWrt2db")
|
|
3223
|
+
dropStreamTable("snap1")
|
|
3224
|
+
}catch(ex){print ex}
|
|
3225
|
+
```
|
|
3226
|
+
|
|
3227
|
+
创建一个分布式表 snapshot\_trade 用于存储流表处理后的数据。
|
|
3228
|
+
|
|
3229
|
+
```dolphindb
|
|
3230
|
+
create table "dfs://stock_lv2_snapshot"."snapshot_trade"(
|
|
3231
|
+
TradeDate DATE[comment="交易日期", compress="delta"]
|
|
3232
|
+
TradeTime TIME[comment="交易时间", compress="delta"]
|
|
3233
|
+
SecurityID SYMBOL
|
|
3234
|
+
OpenPrice DOUBLE
|
|
3235
|
+
PreClosePrice DOUBLE
|
|
3236
|
+
HighPrice DOUBLE
|
|
3237
|
+
LowPrice DOUBLE
|
|
3238
|
+
LastPrice DOUBLE
|
|
3239
|
+
PreCloseIOPV DOUBLE
|
|
3240
|
+
IOPV DOUBLE
|
|
3241
|
+
UpLimitPx DOUBLE
|
|
3242
|
+
DownLimitPx DOUBLE
|
|
3243
|
+
DeltasHighPrice INT
|
|
3244
|
+
DeltasLowPrice INT
|
|
3245
|
+
DeltasVolume LONG
|
|
3246
|
+
DeltasTurnover DOUBLE
|
|
3247
|
+
DeltasTradesCount INT
|
|
3248
|
+
)
|
|
3249
|
+
partitioned by TradeDate, SecurityID,
|
|
3250
|
+
sortColumns=[`SecurityID,`TradeTime],
|
|
3251
|
+
keepDuplicates=ALL
|
|
3252
|
+
```
|
|
3253
|
+
|
|
3254
|
+
定义流数据表并建立流订阅。
|
|
3255
|
+
|
|
3256
|
+
本例对流数据进行处理,包含 2 个方面:
|
|
3257
|
+
|
|
3258
|
+
1. `setStreamTableFilterColumn` 函数:设置只订阅
|
|
3259
|
+
`TradingPhaseCode` 字段为 ”Trade“ 值的数据
|
|
3260
|
+
2. 自定义函数 `append2Table` :在入库前对部分字段的数据进行计算和处理
|
|
3261
|
+
|
|
3262
|
+
```dolphindb
|
|
3263
|
+
// 定义流表
|
|
3264
|
+
colName=loadTable(dbName, tbName).schema().colDefs.name
|
|
3265
|
+
colType=loadTable(dbName, tbName).schema().colDefs.typeString
|
|
3266
|
+
t = streamTable(100:0, colName, colType);
|
|
3267
|
+
enableTableShareAndPersistence(table=t, tableName="snap1", cacheSize=100000)
|
|
3268
|
+
go
|
|
3269
|
+
|
|
3270
|
+
// 定义过滤字段
|
|
3271
|
+
setStreamTableFilterColumn(snap1, "TradingPhaseCode")
|
|
3272
|
+
|
|
3273
|
+
// 定义流数据处理函数:订阅处理后写入分布式表
|
|
3274
|
+
def append2Table(dbName, tbName, mutable msg){
|
|
3275
|
+
data = select TradeDate,
|
|
3276
|
+
iif(TradeTime <=09:30:00.000, 09:30:00.000, TradeTime) as TradeTime,
|
|
3277
|
+
SecurityID,
|
|
3278
|
+
OpenPrice,
|
|
3279
|
+
PreCloPrice,
|
|
3280
|
+
HighPrice,
|
|
3281
|
+
LowPrice,
|
|
3282
|
+
LastPrice,
|
|
3283
|
+
PreCloseIOPV,
|
|
3284
|
+
IOPV,
|
|
3285
|
+
UpLimitPx,
|
|
3286
|
+
DownLimitPx,
|
|
3287
|
+
iif(deltas(HighPrice)>0.000001, 1, 0) as DeltasHighPrice,
|
|
3288
|
+
iif(abs(deltas(LowPrice))>0.000001, -1, 0) as DeltasLowPrice,
|
|
3289
|
+
iif(deltas(TotalVolumeTrade)==NULL, TotalVolumeTrade, deltas(TotalVolumeTrade)) as DeltasVolume,
|
|
3290
|
+
iif(deltas(TotalValueTrade)==NULL, TotalValueTrade, deltas(TotalValueTrade)) as DeltasTurnover,
|
|
3291
|
+
iif(deltas(NumTrades)==NULL, NumTrades, deltas(NumTrades)) as DeltasTradesCount
|
|
3292
|
+
from msg
|
|
3293
|
+
where TradeTime >=09:25:00.000
|
|
3294
|
+
context by SecurityID
|
|
3295
|
+
loadTable(dbName, tbName).tableInsert(data)
|
|
3296
|
+
}
|
|
3297
|
+
|
|
3298
|
+
// 订阅流表
|
|
3299
|
+
subscribeTable(tableName="snap1", actionName="subAndWrt2db", offset=0, handler=append2Table{dbName, tbName1}, msgAsTable=true, batchSize=10000, filter=["TRADE"])
|
|
3300
|
+
```
|
|
3301
|
+
|
|
3302
|
+
使用 `replay` 函数回放历史存储的快照数据到流表,以模拟实时数据写入。
|
|
3303
|
+
|
|
3304
|
+
```dolphindb
|
|
3305
|
+
// 历史数据回放
|
|
3306
|
+
beginDate = 2022.01.01
|
|
3307
|
+
endDate = 2022.01.10
|
|
3308
|
+
ds = replayDS(<select * from loadTable(dbName, tbName) where TradeDate between beginDate and endDate>, dateColumn="TradeDate", timeColumn="TradeTime")
|
|
3309
|
+
|
|
3310
|
+
replay(inputTables=ds, outputTables="snap1", dateColumn="TradeDate", timeColumn="TradeTime", replayRate=100000, absoluteRate=true)
|
|
3311
|
+
|
|
3312
|
+
// 查看实际入库的数据
|
|
3313
|
+
select count(*) from loadTable(dbName, tbName1) // 799,013
|
|
3314
|
+
```
|
|
3315
|
+
|
|
3316
|
+
**例 2:**在 API 端订阅流数据表,并在 API 端进行计算。
|
|
3317
|
+
|
|
3318
|
+
在订阅流表前,现在 DolphinDB 端(Web / GUI / VSCode)执行下述脚本,定义一个持久化流表 snap2。
|
|
3319
|
+
|
|
3320
|
+
```dolphindb
|
|
3321
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
3322
|
+
tbName = "snapshot"
|
|
3323
|
+
|
|
3324
|
+
beginDate = 2022.01.01
|
|
3325
|
+
endDate = 2022.01.10
|
|
3326
|
+
ds = replayDS(<select * from loadTable(dbName, tbName) where TradeDate between beginDate and endDate>, dateColumn="TradeDate", timeColumn="TradeTime")
|
|
3327
|
+
|
|
3328
|
+
dbName = "dfs://stock_lv2_snapshot"
|
|
3329
|
+
tbName = "snapshot"
|
|
3330
|
+
streamTbName = "snap2"
|
|
3331
|
+
|
|
3332
|
+
// 请确保没有同名流表,如有请修改表名
|
|
3333
|
+
// 若需要重复执行该脚本,可执行此步取消订阅删除流表
|
|
3334
|
+
try{
|
|
3335
|
+
actName = exec actions from getStreamingStat().pubTables where tableName = streamTbName
|
|
3336
|
+
hp = exec subscriber from getStreamingStat().pubTables where tableName = streamTbName
|
|
3337
|
+
host = hp[0].split(":")[0]
|
|
3338
|
+
port = hp[0].split(":")[1].int()
|
|
3339
|
+
stopPublishTable(host, port, streamTbName, actName[0])
|
|
3340
|
+
dropStreamTable(streamTbName)
|
|
3341
|
+
}catch(ex){
|
|
3342
|
+
print ex
|
|
3343
|
+
}
|
|
3344
|
+
|
|
3345
|
+
// 定义一个持久化流表 snap2 接收流数据
|
|
3346
|
+
colName=loadTable(dbName, tbName).schema().colDefs.name
|
|
3347
|
+
colType=loadTable(dbName, tbName).schema().colDefs.typeString
|
|
3348
|
+
t = streamTable(100:0, colName, colType);
|
|
3349
|
+
enableTableShareAndPersistence(table=t, tableName=streamTbName, cacheSize=100000)
|
|
3350
|
+
go
|
|
3351
|
+
// (非必要)设置过滤列,若不需要过滤可以删去该脚本
|
|
3352
|
+
setStreamTableFilterColumn(snap2, 'SecurityID')
|
|
3353
|
+
```
|
|
3354
|
+
|
|
3355
|
+
在 Python 客户端发起订阅,并将订阅到的流数据存入本地的csv文件。导入 csv 文件的处理逻辑封装在 handler 函数内,由于设置
|
|
3356
|
+
msgAsTable=True 后,导入的数据以表的形式传输到 Python 端,默认转化为 DataFrame 形式,因此可以直接用 to\_csv
|
|
3357
|
+
导出。 此处的 handler 函数也可以替换成其他数据处理计算逻辑。
|
|
3358
|
+
|
|
3359
|
+
```dolphindb
|
|
3360
|
+
import dolphindb as ddb
|
|
3361
|
+
import numpy as np
|
|
3362
|
+
import pandas as pd
|
|
3363
|
+
import dolphindb.settings as keys
|
|
3364
|
+
from threading import Event
|
|
3365
|
+
|
|
3366
|
+
# 建立 API 和 server 之间的连接
|
|
3367
|
+
s = ddb.session()
|
|
3368
|
+
conn = s.connect(host="ecosystem", port=8440, userid="admin", password="123456")
|
|
3369
|
+
# 替换自己的 ip/port
|
|
3370
|
+
|
|
3371
|
+
# 确认连接是否成功
|
|
3372
|
+
if conn:
|
|
3373
|
+
print("successfully connected!")
|
|
3374
|
+
|
|
3375
|
+
# 开启流数据功能
|
|
3376
|
+
s.enableStreaming(0)
|
|
3377
|
+
# 定义流计算处理函数
|
|
3378
|
+
def my_handler(msg):
|
|
3379
|
+
optPath = "D:/File2024/入门教程/streamOutput.csv"
|
|
3380
|
+
msg.to_csv(optPath, mode="a", header=False, index=False)
|
|
3381
|
+
|
|
3382
|
+
# 发起订阅
|
|
3383
|
+
s.subscribe(host="ecosystem", port=8440, tableName="snap2", actionName="sub_snap2", offset=-1, handler=my_handler, msgAsTable=True, batchSize=10000, throttle=1, filter=np.array(["000001"]))
|
|
3384
|
+
|
|
3385
|
+
# 阻塞进程使订阅持续进行
|
|
3386
|
+
Event().wait()
|
|
3387
|
+
```
|
|
3388
|
+
|
|
3389
|
+
流数据回放模拟:提交一个历史数据回放的后台任务模拟流数据回放
|
|
3390
|
+
|
|
3391
|
+
```dolphindb
|
|
3392
|
+
submitJob("replay", "mockRealTimeData", replay{inputTables=ds, outputTables=streamTbName, dateColumn="TradeDate", timeColumn="TradeTime", replayRate=100000, absoluteRate=true})
|
|
3393
|
+
getRecentJobs(1)
|
|
3394
|
+
```
|
|
3395
|
+
|
|
3396
|
+
可以通过 `getRecentJobs`
|
|
3397
|
+
函数查看当前回放任务是否结束,回放结束后,可以在指定目录查看文件是否成功导出。
|
|
3398
|
+
|
|
3399
|
+
### 7.3 流计算引擎
|
|
3400
|
+
|
|
3401
|
+
在 DolphinDB 处理流数据有天然优势,这是因为 DolphinDB
|
|
3402
|
+
内置了处理不同逻辑场景的流计算引擎,即使是复杂的因子计算逻辑,也可以通过逻辑拆分交给不同的引擎去实现,通过引擎的级联实现流水线式的计算。且 DolphinDB
|
|
3403
|
+
的内置引擎支持的算子经过了算法上的优化,计算性能高效。用户使用时仅需要对引擎参数进行配置,即可实现复杂逻辑,节省了用户自己开发算法逻辑的成本。
|
|
3404
|
+
|
|
3405
|
+

|
|
3406
|
+
|
|
3407
|
+
根据各自适用的逻辑和场景,DolphinDB 内置的流计算引擎可以分为以下几类:
|
|
3408
|
+
|
|
3409
|
+
表 7-3-1 不同流计算场景下适用的引擎及其计算逻辑
|
|
3410
|
+
|
|
3411
|
+
| **接入数据源** | **场景** | **引擎** | **类比批计算逻辑** |
|
|
3412
|
+
| --- | --- | --- | --- |
|
|
3413
|
+
| 单流 | 时序窗口聚合计算 | createTimeSeriesEngine | group by + interval/bar/dailyAlignedBar |
|
|
3414
|
+
| createDailyTimeSeriesEngine |
|
|
3415
|
+
| 涉及历史状态的计算 | createReactiveStateEngine | **状态函数:** mfunc, tmfunc, cumfunc, rowfunc, prev/move/deltas… **无状态函数:** rowFunc, 四则运算… |
|
|
3416
|
+
| createNarrowReactiveStateEngine |
|
|
3417
|
+
| createDualOwnershipReactiveStateEngine |
|
|
3418
|
+
| createReactiveStatelessEngine | 类似 excel 单元格关联 |
|
|
3419
|
+
| 截面计算 | createCrossSectionalEngine | pivot by |
|
|
3420
|
+
| 会话窗口计算 | createSessionWindowEngine | sessionWindow |
|
|
3421
|
+
| 异常检测、风控 | createAnomalyDetectionEngine | iif |
|
|
3422
|
+
| createRuleEngine |
|
|
3423
|
+
| 基础算子计算,通过GPU 加速 | createDeviceEngine | / |
|
|
3424
|
+
| 快照合成 | createOrderBookSnapshotEngine | / |
|
|
3425
|
+
| 复杂事件处理引擎 | createCEPEngine | / |
|
|
3426
|
+
| 数据分发、广播 | createStreamBroadcastEngine | 同一张流表复制多路广播 |
|
|
3427
|
+
| createStreamDispatchEngine | 同一张流表拆分后,分发给多个引擎并行计算 |
|
|
3428
|
+
| 双流 | 等值连接:左右表互相匹配连接列和时间列都相等的数据 | createEquiJoinEngine | equi join (ej) |
|
|
3429
|
+
| 左连接:按连接列分组,左表就近匹配右表时间列进行连接 | createAsofJoinEngine | asof join (aj) |
|
|
3430
|
+
| 左连接:左边按连接列等值匹配右表数据,多条匹配可以选择保留最新还是最就的一条 | createLeftSemiJoinEngine | lsj (多条匹配仅取第一条) |
|
|
3431
|
+
| 左连接:按连接列分组,左表时间列确立一个窗口,匹配右表在该窗口中的数据 | createWindowJoinEngine | window join (wj) |
|
|
3432
|
+
| 左连接:适用于右表不频繁更新的场景(通常是维度表),左表按连接列等值匹配右表 | createLookupJoinEngine | left join (lj) |
|
|
3433
|
+
|
|
3434
|
+
**例.** 流式计算主买/主卖交易量(示例代码参考:[流式计算中证
|
|
3435
|
+
1000 指数主买/主卖交易量](CSI_1000.html))
|
|
3436
|
+
|
|
3437
|
+
计算公式:主买/主卖交易量 = Σ(交易价格\*交易量\*权重因子)
|
|
3438
|
+
|
|
3439
|
+
拆分计算逻辑,得到的计算流程为:
|
|
3440
|
+
|
|
3441
|
+
(1)计算每分钟的成交量(按照股票分组)→ 时序聚合引擎
|
|
3442
|
+
|
|
3443
|
+
(2)按分钟累计成交量(按照股票分组) → 响应式状态引擎
|
|
3444
|
+
|
|
3445
|
+
(3)对股票成交量进行加权求和计算交易量 → 横截面引擎
|
|
3446
|
+
|
|
3447
|
+

|
|
3448
|
+

|
|
3449
|
+
|
|
3450
|
+
在运行脚本前,可以先清理环境中的变量,并初始化定义一些公共变量:
|
|
3451
|
+
|
|
3452
|
+
```dolphindb
|
|
3453
|
+
undef all
|
|
3454
|
+
go
|
|
3455
|
+
|
|
3456
|
+
dbName = "dfs://stock_trade"
|
|
3457
|
+
tbName = "trade"
|
|
3458
|
+
streamTbName = "trade_st"
|
|
3459
|
+
|
|
3460
|
+
try{unsubscribeTable(tableName=streamTbName, actionName="act_tsEngine")}catch(ex){print(ex)}
|
|
3461
|
+
try{dropStreamEngine("rsEngine")}catch(ex){print(ex)}
|
|
3462
|
+
try{dropStreamEngine("tsEngine")}catch(ex){print(ex)}
|
|
3463
|
+
try{dropStreamEngine("csEngine")}catch(ex){print(ex)}
|
|
3464
|
+
```
|
|
3465
|
+
|
|
3466
|
+
定义一个持久化流表 trade\_st 用于接收实时的逐笔成交数据。
|
|
3467
|
+
|
|
3468
|
+
```dolphindb
|
|
3469
|
+
colName=loadTable(dbName, tbName).schema().colDefs.name
|
|
3470
|
+
colType=loadTable(dbName, tbName).schema().colDefs.typeString
|
|
3471
|
+
t = streamTable(100:0, colName, colType);
|
|
3472
|
+
|
|
3473
|
+
try{
|
|
3474
|
+
enableTableShareAndPersistence(table=t, tableName=streamTbName, asynWrite=true, compress=true, cacheSize=100000, retentionMinutes=1440, flushMode=0, preCache=10000)
|
|
3475
|
+
}
|
|
3476
|
+
catch(ex){
|
|
3477
|
+
print(ex)
|
|
3478
|
+
}
|
|
3479
|
+
|
|
3480
|
+
undef("t")
|
|
3481
|
+
go
|
|
3482
|
+
```
|
|
3483
|
+
|
|
3484
|
+
模拟创建成分股权重因子。
|
|
3485
|
+
|
|
3486
|
+
```dolphindb
|
|
3487
|
+
sids = exec distinct SecurityID from loadTable(dbName, tbName)
|
|
3488
|
+
def createWeightDict(sids){
|
|
3489
|
+
|
|
3490
|
+
return dict(sids, take(0.001, sids.size()))
|
|
3491
|
+
}
|
|
3492
|
+
|
|
3493
|
+
weightDict = createWeightDict(sids)
|
|
3494
|
+
```
|
|
3495
|
+
|
|
3496
|
+
模拟创建成分股权重因子。
|
|
3497
|
+
|
|
3498
|
+
```dolphindb
|
|
3499
|
+
// 输入表结构定义
|
|
3500
|
+
tsEngineDummy = table(1:0, `SecurityID`TradeTime`TradePrice`TradeQty`TradeBSFlag, [SYMBOL, TIMESTAMP, DOUBLE, INT, SYMBOL])
|
|
3501
|
+
rsEngineDummy = table(1:0, `TradeTime`SecurityID`SellTradeAmount`BuyTradeAmount, [TIMESTAMP, SYMBOL, DOUBLE, DOUBLE])
|
|
3502
|
+
csEngineDummy = table(1:0, `SecurityID`TradeTime`SellTradeAmount`BuyTradeAmount, [SYMBOL, TIMESTAMP, DOUBLE, DOUBLE])
|
|
3503
|
+
|
|
3504
|
+
//创建存储结果的表
|
|
3505
|
+
share(keyedTable(`Time, 2000:0, `Time`SellTradeAmount`BuyTradeAmount`UpdateTime, [TIMESTAMP, DOUBLE, DOUBLE, TIMESTAMP]), "tradeAmountIndex")
|
|
3506
|
+
go
|
|
3507
|
+
```
|
|
3508
|
+
|
|
3509
|
+
定义流计算引擎。由于引擎是通过输出表设置为下一个引擎,来进行级联的,为保证脚本正常解析,引擎定义的顺序和业务数据流的逻辑是相反的。如本例中计算逻辑是 时序引擎 →
|
|
3510
|
+
响应式状态引擎 → 横截面引擎,脚本中定义顺序则相反:
|
|
3511
|
+
|
|
3512
|
+
```dolphindb
|
|
3513
|
+
//创建横截面引擎
|
|
3514
|
+
csEngine = createCrossSectionalEngine(name="csEngine", metrics=<[wsum(SellTradeAmount, weightDict[SecurityID]), wsum(BuyTradeAmount, weightDict[SecurityID]), now()]>, dummyTable=csEngineDummy, outputTable=objByName("tradeAmountIndex"), keyColumn=`SecurityID, triggeringPattern="keyCount", triggeringInterval=1000, useSystemTime=false, timeColumn=`TradeTime, lastBatchOnly=false)
|
|
3515
|
+
|
|
3516
|
+
//创建响应式状态引擎
|
|
3517
|
+
rsEngine = createReactiveStateEngine(name="rsEngine", metrics=<[cummax(TradeTime), cumsum(SellTradeAmount), cumsum(BuyTradeAmount)]>, dummyTable=rsEngineDummy, outputTable=csEngine, keyColumn=`SecurityID)
|
|
3518
|
+
|
|
3519
|
+
//创建时间序列引擎
|
|
3520
|
+
tsEngine = createTimeSeriesEngine(name="tsEngine", windowSize=60000, step=60000, metrics=<[sum(iif(TradeBSFlag=="S", 1, 0)*TradeQty*TradePrice), sum(iif(TradeBSFlag=="B", 1, 0)*TradeQty*TradePrice)]>, dummyTable=tsEngineDummy, outputTable=rsEngine, timeColumn=`TradeTime, keyColumn=`SecurityID, useWindowStartTime=true, fill=[0, 0], forceTriggerTime=100)
|
|
3521
|
+
```
|
|
3522
|
+
|
|
3523
|
+
订阅逐笔数据表,写入引擎流水线的第一个引擎:时序聚合引擎。
|
|
3524
|
+
|
|
3525
|
+
本例自定义了一个流数据处理函数 `streamHandler`,可以通过修改内部逻辑自定义数据处理方案。
|
|
3526
|
+
|
|
3527
|
+
```dolphindb
|
|
3528
|
+
// handler 数据处理函数
|
|
3529
|
+
def streamHandler(mutable engine, msg){
|
|
3530
|
+
data = select SecurityID, concatDateTime(TradeDate, TradeTime) as TradeTime, TradePrice, TradeQty, TradeBSFlag from msg
|
|
3531
|
+
engine.append!(data)
|
|
3532
|
+
}
|
|
3533
|
+
|
|
3534
|
+
// 订阅流数据表
|
|
3535
|
+
subscribeTable(tableName=streamTbName, actionName="act_tsEngine", offset=0, handler=streamHandler{tsEngine}, msgAsTable=true, batchSize=10000, throttle=0.001)
|
|
3536
|
+
```
|
|
3537
|
+
|
|
3538
|
+
通过 `replayDS` 函数获取历史数据源,然后借助 `replay`
|
|
3539
|
+
函数模拟流数据回放过程。
|
|
3540
|
+
|
|
3541
|
+
```dolphindb
|
|
3542
|
+
// 后台提交数据回放任务,模拟实时数据注入
|
|
3543
|
+
// 本例设置 timeRepartitionSchema 将数据源按照 15min 进行切片,这是为了保证回放时数据不会 OOM
|
|
3544
|
+
ds = replayDS(<select * from loadTable(dbName, tbName)>, dateColumn="TradeDate", timeColumn="TradeTime", timeRepartitionSchema=09:30:00.000 + 15*1000*60*(0..22))
|
|
3545
|
+
|
|
3546
|
+
submitJob("relay", "replay to trade", replay{inputTables=ds, outputTables=streamTbName, dateColumn="TradeDate", timeColumn="TradeTime", replayRate=10000000, absoluteRate=true})
|
|
3547
|
+
getRecentJobs(1)
|
|
3548
|
+
```
|
|
3549
|
+
|
|
3550
|
+
回放进程可以通过函数 `getRecentJobs` 进程查询。
|
|
3551
|
+
|
|
3552
|
+
通过 SQL 查询输出的结果表:
|
|
3553
|
+
|
|
3554
|
+
```dolphindb
|
|
3555
|
+
select * from tradeAmountIndex limit 10
|
|
3556
|
+
```
|
|
3557
|
+
|
|
3558
|
+

|
|
3559
|
+
|
|
3560
|
+
为了新用户能够更好理解引擎的计算,我们仔细观察三个计算引擎的流计算指标。
|
|
3561
|
+
|
|
3562
|
+
- 时序聚合引擎
|
|
3563
|
+
|
|
3564
|
+
```dolphindb
|
|
3565
|
+
<[sum(iif(TradeBSFlag=="S", 1, 0)*TradeQty*TradePrice),
|
|
3566
|
+
sum(iif(TradeBSFlag=="B", 1, 0)*TradeQty*TradePrice)]>
|
|
3567
|
+
```
|
|
3568
|
+
|
|
3569
|
+
- 响应式状态引擎
|
|
3570
|
+
|
|
3571
|
+
```dolphindb
|
|
3572
|
+
<[cummax(TradeTime), cumsum(SellTradeAmount), cumsum(BuyTradeAmount)]>
|
|
3573
|
+
```
|
|
3574
|
+
|
|
3575
|
+
- 横截面引擎
|
|
3576
|
+
|
|
3577
|
+
```dolphindb
|
|
3578
|
+
<[wsum(SellTradeAmount, weightDict[SecurityID]), wsum(BuyTradeAmount, weightDict[SecurityID]), now()]>
|
|
3579
|
+
```
|
|
3580
|
+
|
|
3581
|
+
将上述流计算脚本转换为 SQL 批计算逻辑,可改写如下:
|
|
3582
|
+
|
|
3583
|
+
从分布式表中筛选一部分字段进行计算:
|
|
3584
|
+
|
|
3585
|
+
```dolphindb
|
|
3586
|
+
data = select SecurityID, concatDateTime(TradeDate, TradeTime) as TradeTime, TradePrice, TradeQty, TradeBSFlag from loadTable(dbName, tbName)
|
|
3587
|
+
```
|
|
3588
|
+
|
|
3589
|
+
注:
|
|
3590
|
+
|
|
3591
|
+
如果此脚本读取的数据量太大造成内存溢出,可以加上 limit 或 top
|
|
3592
|
+
子句筛选一部分数据进行计算验证结果。
|
|
3593
|
+
|
|
3594
|
+
- 按时间进行分钟聚合(时序聚合)
|
|
3595
|
+
|
|
3596
|
+
```dolphindb
|
|
3597
|
+
t1 = select sum(iif(TradeBSFlag=="S", 1, 0)*TradeQty*TradePrice) as SellTradeAmount,
|
|
3598
|
+
sum(iif(TradeBSFlag=="B", 1, 0)*TradeQty*TradePrice) as BuyTradeAmount
|
|
3599
|
+
from data group by SecurityID, interval(TradeTime, 1m, 0) as TradeTime
|
|
3600
|
+
```
|
|
3601
|
+
|
|
3602
|
+
- 累积计算成交量(状态计算)
|
|
3603
|
+
|
|
3604
|
+
```dolphindb
|
|
3605
|
+
t2 = select SecurityID, cummax(TradeTime) as Time,
|
|
3606
|
+
cumsum(SellTradeAmount) as SellTradeAmount,
|
|
3607
|
+
cumsum(BuyTradeAmount) as BuyTradeAmount
|
|
3608
|
+
from t1 context by SecurityID
|
|
3609
|
+
```
|
|
3610
|
+
|
|
3611
|
+
- 按股票因子加权计算成交量(截面计算)
|
|
3612
|
+
|
|
3613
|
+
```dolphindb
|
|
3614
|
+
t3 = select wsum(SellTradeAmount, weightDict[SecurityID]) as SellTradeAmount,
|
|
3615
|
+
wsum(BuyTradeAmount, weightDict[SecurityID]) as BuyTradeAmount
|
|
3616
|
+
from t2 group by Time
|
|
3617
|
+
```
|
|
3618
|
+
|
|
3619
|
+
对比批计算和流计算的脚本,可以发现不论是引擎的算子还是 SQL select 的计算主体,本质上都使用了一套函数去实现,这体现了 DolphinDB
|
|
3620
|
+
流批一体的计算特点。
|
|
3621
|
+
|
|
3622
|
+
### 7.4 常见问题
|
|
3623
|
+
|
|
3624
|
+
1. 流表数据是否支持部分记录的更新和删除?
|
|
3625
|
+
|
|
3626
|
+
不支持。流表记录只能追加,一旦追加后就不能更新和删除。
|
|
3627
|
+
|
|
3628
|
+
特殊地,对于键值流表(keyedStreamTable
|
|
3629
|
+
和 latestKeyedStreamTable),系统支持在数据写入流表前,进行键值检查,以选择数据是追加还是丢弃。
|
|
3630
|
+
2. 流表数据量大,内存占用不够怎么解决?
|
|
3631
|
+
|
|
3632
|
+
可以将流表通过 `enableTablePersistence` 函数或者
|
|
3633
|
+
`enableTableShareAndPersistence`
|
|
3634
|
+
函数进行持久化,系统会将一部分数据持久化存储到磁盘指定目录(通过配置参数 [persistenceDir](../db_distr_comp/cfg/function_configuration.html) 设置)。
|
|
3635
|
+
3. 如何配置重启后自动加载订阅流表?
|
|
3636
|
+
|
|
3637
|
+
将流数据表定义和流表订阅操作放在启动脚本 startup.dos (通过配置参数 [startup](../db_distr_comp/cfg/standalone.html)
|
|
3638
|
+
设置)内,这样节点重启后可以自动加载订阅流表。详情参考教程 [启动脚本](Startup.html) 和 [节点启动时的流计算自动订阅](streaming_auto_sub.html)。
|
|
3639
|
+
4. 流表如何进行删除?一直无法删除如何解决?
|
|
3640
|
+
|
|
3641
|
+
流表需要通过函数 `dropStreamTable` 进行删除,而不是通过 `` undef(`st,
|
|
3642
|
+
SHARED) `` 进行删除。
|
|
3643
|
+
|
|
3644
|
+
如果流表一直无法删除,请通过 `getStreamingStat`
|
|
3645
|
+
函数查看当前流表上是否存在未取消的订阅,只有订阅全被取消后(取消订阅函数
|
|
3646
|
+
`unsubscribeTable`),才能删除流表。
|
|
3647
|
+
5. 如何配置定期删除持久化流表持久化的数据?
|
|
3648
|
+
|
|
3649
|
+
用户可以在通过 `enableTablePersistence` 函数或者
|
|
3650
|
+
`enableTableShareAndPersistence` 函数持久化流表时,设置
|
|
3651
|
+
*retentionMinutes* 参数,定期删除持久化的数据。
|
|
3652
|
+
6. 如何查询当前流表是否存在?
|
|
3653
|
+
|
|
3654
|
+
可以通过函数 existsStreamTable 查看指定流数据表是否存在。
|
|
3655
|
+
|
|
3656
|
+
需要注意,用户常会误用 defined 函数进行判断,但是该函数对于共享内存表也会返回 true。
|
|
3657
|
+
7. 流订阅或流计算异常如何排查?
|
|
3658
|
+
|
|
3659
|
+
函数 `getStreamingStat` 返回了流订阅发布的详细信息,其中比较常用的信息有:
|
|
3660
|
+
|
|
3661
|
+
- 通过 subWorkers 表的 lastErrMsg 字段可以排查订阅中是否存在异常;
|
|
3662
|
+
- 通过 pubConns 表和 subWorkers 表中的 queueDepth 字段可以排查订阅是否阻塞;
|
|
3663
|
+
|
|
3664
|
+
通过函数 `getStreamEngineStat` 排查流计算引擎的状态。
|
|
3665
|
+
|
|
3666
|
+
### 7.5 下一步阅读
|
|
3667
|
+
|
|
3668
|
+
官方文档 [流数据](../stream/str_intro.html)
|
|
3669
|
+
整理了一些流计算相关的文档和教程说明,此处仅列举部分:
|
|
3670
|
+
|
|
3671
|
+
- 流数据架构:[流数据功能简介](../stream/str_funcs.html)
|
|
3672
|
+
[流数据表](../stream/str_table.html)
|
|
3673
|
+
[发布与订阅](../stream/sub_pub.html)
|
|
3674
|
+
- 流计算引擎:[内置流式计算引擎](../funcs/themes/streamingEngine.html)
|
|
3675
|
+
[内置多数据源流式关联引擎](../stream/str_join_engine.html)
|
|
3676
|
+
- 流数据接入:[Python API 接入数据](../stream/str_api_python.html)
|
|
3677
|
+
[行情数据插件:NSQ](../plugins/nsq/nsq.html)
|
|
3678
|
+
- 数据回放:[股票行情回放](stock_market_replay.html)
|
|
3679
|
+
- 流批一体:[流批一体](../stream/str_batch.html)
|
|
3680
|
+
[快速搭建 Level-2
|
|
3681
|
+
快照数据流批一体因子计算平台最佳实践](l2_snapshot_factor_calc.html)
|
|
3682
|
+
- 场景案例:[金融实时实际波动率预测](ml_volatility.html)
|
|
3683
|
+
[实时计算日累计逐单资金流](streaming_capital_flow_daily.html)
|
|
3684
|
+
[实时计算分钟资金流](streaming_capital_flow_order_by_order.html)
|
|
3685
|
+
[实时选取外汇行情多价源最优价](best_price_selection.html)
|
|
3686
|
+
金[融因子流式实现](str_comp_fin_quant.html#%E9%87%91%E8%9E%8D%E5%9B%A0%E5%AD%90%E6%B5%81%E5%BC%8F%E5%AE%9E%E7%8E%B0)
|
|
3687
|
+
- 可视化展示:[数据面板](dashboard_tutorial.html)
|
|
3688
|
+
[Altair 连接 DolphinDB 数据源](../stream/str_altair.html)
|
|
3689
|
+
[DolphinDB Grafana
|
|
3690
|
+
DataSource Plugin](../tools/grafana.html)
|
|
3691
|
+
|
|
3692
|
+
## 8. 附录
|
|
3693
|
+
|
|
3694
|
+
各章节对应的脚本代码如下:
|
|
3695
|
+
|
|
3696
|
+
[2.2MockData.dos](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/2.2MockData.dos)
|
|
3697
|
+
|
|
3698
|
+
[3.3建库建表.dos](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/3.3%E5%BB%BA%E5%BA%93%E5%BB%BA%E8%A1%A8.dos)
|
|
3699
|
+
|
|
3700
|
+
[4.2.1导入一年快照数据.dos](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/4.2.1%E5%AF%BC%E5%85%A5%E4%B8%80%E5%B9%B4%E5%BF%AB%E7%85%A7%E6%95%B0%E6%8D%AE.dos)
|
|
3701
|
+
|
|
3702
|
+
[4.2.2导入一天快照数据.dos](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/4.2.2%E5%AF%BC%E5%85%A5%E4%B8%80%E5%A4%A9%E5%BF%AB%E7%85%A7%E6%95%B0%E6%8D%AE.dos)
|
|
3703
|
+
|
|
3704
|
+
[4.2.3导入逐笔成交数据.dos](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/4.2.3%E5%AF%BC%E5%85%A5%E9%80%90%E7%AC%94%E6%88%90%E4%BA%A4%E6%95%B0%E6%8D%AE.dos)
|
|
3705
|
+
|
|
3706
|
+
[4.3.1场景一.dos](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/4.3.1%E5%9C%BA%E6%99%AF%E4%B8%80.dos)
|
|
3707
|
+
|
|
3708
|
+
[4.3.1场景二.dos](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/4.3.1%E5%9C%BA%E6%99%AF%E4%BA%8C.dos)
|
|
3709
|
+
|
|
3710
|
+
[4.3.2场景一.dos](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/4.3.2%E5%9C%BA%E6%99%AF%E4%B8%80.dos)
|
|
3711
|
+
|
|
3712
|
+
[4.3.2场景二.dos](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/4.3.2%E5%9C%BA%E6%99%AF%E4%BA%8C.dos)
|
|
3713
|
+
|
|
3714
|
+
[4.3.3 中文导入.dos](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/4.3.3%20%E4%B8%AD%E6%96%87%E5%AF%BC%E5%85%A5.dos)
|
|
3715
|
+
|
|
3716
|
+
[5.数据表操作.dos](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/5.%E6%95%B0%E6%8D%AE%E8%A1%A8%E6%93%8D%E4%BD%9C.dos)
|
|
3717
|
+
|
|
3718
|
+
[5.3.3 场景一\_删除单分区.dos](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/5.3.3%20%E5%9C%BA%E6%99%AF%E4%B8%80_%E5%88%A0%E9%99%A4%E5%8D%95%E5%88%86%E5%8C%BA.dos)
|
|
3719
|
+
|
|
3720
|
+
[5.3.3 场景二\_删除全表.dos](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/5.3.3%20%E5%9C%BA%E6%99%AF%E4%BA%8C_%E5%88%A0%E9%99%A4%E5%85%A8%E8%A1%A8.dos)
|
|
3721
|
+
|
|
3722
|
+
[5.3.3 场景三\_删除重复数据.dos](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/5.3.3%20%E5%9C%BA%E6%99%AF%E4%B8%89_%E5%88%A0%E9%99%A4%E9%87%8D%E5%A4%8D%E6%95%B0%E6%8D%AE.dos)
|
|
3723
|
+
|
|
3724
|
+
[6.SQL批计算.dos](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/6.SQL%E6%89%B9%E8%AE%A1%E7%AE%97.dos)
|
|
3725
|
+
|
|
3726
|
+
[7.2.2\_流数据发布\_例1\_数据回放.dos](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/7.2.2_%E6%B5%81%E6%95%B0%E6%8D%AE%E5%8F%91%E5%B8%83_%E4%BE%8B1_%E6%95%B0%E6%8D%AE%E5%9B%9E%E6%94%BE.dos)
|
|
3727
|
+
|
|
3728
|
+
[7.2.2\_流数据发布\_例2\_API写入流表.py](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/7.2.2_%E6%B5%81%E6%95%B0%E6%8D%AE%E5%8F%91%E5%B8%83_%E4%BE%8B2_API%E5%86%99%E5%85%A5%E6%B5%81%E8%A1%A8.py)
|
|
3729
|
+
|
|
3730
|
+
[7.2.2\_流数据发布\_例3\_Kafka订阅写入流表.py](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/7.2.2_%E6%B5%81%E6%95%B0%E6%8D%AE%E5%8F%91%E5%B8%83_%E4%BE%8B3_Kafka%E8%AE%A2%E9%98%85%E5%86%99%E5%85%A5%E6%B5%81%E8%A1%A8.py)
|
|
3731
|
+
|
|
3732
|
+
[7.2.2\_流数据订阅\_例1\_订阅入库.dos](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/7.2.2_%E6%B5%81%E6%95%B0%E6%8D%AE%E8%AE%A2%E9%98%85_%E4%BE%8B1_%E8%AE%A2%E9%98%85%E5%85%A5%E5%BA%93.dos)
|
|
3733
|
+
|
|
3734
|
+
[7.2.2\_流数据订阅\_例2\_API 端订阅流表计算.dos](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/7.2.2_%E6%B5%81%E6%95%B0%E6%8D%AE%E8%AE%A2%E9%98%85_%E4%BE%8B2_API%20%E7%AB%AF%E8%AE%A2%E9%98%85%E6%B5%81%E8%A1%A8%E8%AE%A1%E7%AE%97.dos)
|
|
3735
|
+
|
|
3736
|
+
[7.2.2\_流数据订阅\_例2\_订阅流表计算.py](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/7.2.2_%E6%B5%81%E6%95%B0%E6%8D%AE%E8%AE%A2%E9%98%85_%E4%BE%8B2_%E8%AE%A2%E9%98%85%E6%B5%81%E8%A1%A8%E8%AE%A1%E7%AE%97.py)
|
|
3737
|
+
|
|
3738
|
+
[7.3引擎级联.dos](https://cdn.dolphindb.cn/zh/tutorials/script/new_users_finance/7.3%E5%BC%95%E6%93%8E%E7%BA%A7%E8%81%94.dos)
|