使用李红艳先生开发的luajit插件读取通达信文件lua库操作步骤如下。1.准备示例数据到 https://github.com/mootdx/mootdx 网页下载tests目录下的sh000001.day、sh688001.lc1、sh688001.lc5文件。wget https://github.com/mootdx/mootdx/archive/refs/heads/master.zip2.安装luajit插件读取通达信文件lua库, 用luajit_table(‘tdx’, list : ‘文件名’)读取C:\dduckdb155 DuckDB v1.5.5 (Variegata) Enter .help for usage hints. memory D load luajit; memory D SELECT * FROM luajit_module(mode : install, sql_name : tdx); ┌─────────┬─────────┬─────────┬──────────────────────────────────────┬──────────────────────────────────────┬──────────┐ │ ok │ mode │ phase │ message │ detail │ sql_name │ │ boolean │ varchar │ varchar │ varchar │ varchar │ varchar │ ├─────────┼─────────┼─────────┼──────────────────────────────────────┼──────────────────────────────────────┼──────────┤ │ true │ install │ install │ installed tdx (UDF) — cached at C: │ luajit_table(tdx) or luajit_s(tdx │ tdx │ │ │ │ │ \Users\lt/.duckdb/luajit-libs/tdx.lu │ , ...) │ │ │ │ │ │ a │ │ │ └─────────┴─────────┴─────────┴──────────────────────────────────────┴──────────────────────────────────────┴──────────┘ memory D SELECT split_part(val,|,1) AS datetime, split_part(val,|,2)::FLOAT AS open, split_part(val,|,3)::FLOAT AS high, split_part(val,|,4)::FLOAT AS low, split_part(val,|,5)::FLOAT AS close, split_part(val,|,6)::BIGINT AS volume, split_part(val,|,7)::DOUBLE AS amount FROM luajit_table(tdx, list : sh000001.day) limit 5; ┌────────────┬─────────┬─────────┬─────────┬─────────┬──────────┬───────────────┐ │ datetime │ open │ high │ low │ close │ volume │ amount │ │ varchar │ float │ float │ float │ float │ int64 │ double │ ├────────────┼─────────┼─────────┼─────────┼─────────┼──────────┼───────────────┤ │ 2000-02-14 │ 1591.44 │ 1674.13 │ 1587.81 │ 1673.94 │ 43645603 │ 26587693056.0 │ │ 2000-02-15 │ 1709.22 │ 1746.44 │ 1663.0 │ 1670.67 │ 52609049 │ 38936428544.0 │ │ 2000-02-16 │ 1674.93 │ 1695.88 │ 1649.69 │ 1693.1 │ 37505374 │ 36014215168.0 │ │ 2000-02-17 │ 1734.26 │ 1770.88 │ 1615.62 │ 1640.64 │ 51469905 │ 49915342848.0 │ │ 2000-02-18 │ 1623.96 │ 1668.16 │ 1583.58 │ 1668.09 │ 26813271 │ 26994974720.0 │ └────────────┴─────────┴─────────┴─────────┴─────────┴──────────┴───────────────┘ memory D SELECT split_part(val,|,1) AS datetime, split_part(val,|,2)::FLOAT AS open, split_part(val,|,3)::FLOAT AS high, split_part(val,|,4)::FLOAT AS low, split_part(val,|,5)::FLOAT AS close, split_part(val,|,6)::BIGINT AS volume, split_part(val,|,7)::DOUBLE AS amount FROM luajit_table(tdx, list : sh688001.lc1) limit 5; ┌─────────────────────┬───────┬───────┬───────┬───────┬────────┬──────────┐ │ datetime │ open │ high │ low │ close │ volume │ amount │ │ varchar │ float │ float │ float │ float │ int64 │ double │ ├─────────────────────┼───────┼───────┼───────┼───────┼────────┼──────────┤ │ 2021-04-23 09:31:00 │ 36.71 │ 37.02 │ 36.71 │ 36.8 │ 7000 │ 256647.0 │ │ 2021-04-23 09:32:00 │ 36.8 │ 36.8 │ 36.75 │ 36.75 │ 1100 │ 40737.0 │ │ 2021-04-23 09:33:00 │ 36.75 │ 36.75 │ 36.71 │ 36.72 │ 5300 │ 194798.0 │ │ 2021-04-23 09:34:00 │ 36.73 │ 36.73 │ 36.63 │ 36.63 │ 4100 │ 149628.0 │ │ 2021-04-23 09:35:00 │ 36.66 │ 36.66 │ 36.52 │ 36.6 │ 9700 │ 355209.0 │ └─────────────────────┴───────┴───────┴───────┴───────┴────────┴──────────┘ memory D SELECT split_part(val,|,1) AS datetime, split_part(val,|,2)::FLOAT AS open, split_part(val,|,3)::FLOAT AS high, split_part(val,|,4)::FLOAT AS low, split_part(val,|,5)::FLOAT AS close, split_part(val,|,6)::BIGINT AS volume, split_part(val,|,7)::DOUBLE AS amount FROM luajit_table(tdx, list : sh688001.lc5) limit 5; ┌─────────────────────┬───────┬───────┬───────┬───────┬────────┬───────────┐ │ datetime │ open │ high │ low │ close │ volume │ amount │ │ varchar │ float │ float │ float │ float │ int64 │ double │ ├─────────────────────┼───────┼───────┼───────┼───────┼────────┼───────────┤ │ 2021-06-01 09:35:00 │ 37.69 │ 37.69 │ 36.89 │ 36.93 │ 64000 │ 2384077.0 │ │ 2021-06-01 09:40:00 │ 36.96 │ 37.35 │ 36.96 │ 37.35 │ 54600 │ 2026959.0 │ │ 2021-06-01 09:45:00 │ 37.35 │ 37.44 │ 37.27 │ 37.31 │ 27600 │ 1029482.0 │ │ 2021-06-01 09:50:00 │ 37.31 │ 37.4 │ 37.2 │ 37.2 │ 28800 │ 1074137.0 │ │ 2021-06-01 09:55:00 │ 37.23 │ 37.43 │ 37.23 │ 37.36 │ 51500 │ 1926873.0 │ └─────────────────────┴───────┴───────┴───────┴───────┴────────┴───────────┘