从大量数据中搜索字符串(CSV 文件中的数百万条记录)
Search string from large amount of data(millions of record in CSV file)
我在 csv 文件中有数百万条记录,我需要进行字符串比较并在 Bootstrap 数据 table 中显示过滤后的记录。
CSV 文件每天更新数百万条记录。
注意:
如果我将 csv 文件导入 sql 数据库并在 table 中应用搜索查询来获取结果,这会花费很多时间。
我可以从 csv 文件进行搜索而不将其导入 SQL 吗?
有没有具体的method/way来存储数据?
是否有任何文本搜索工具或可以在 MS SQL 中完成?
我们将不胜感激。
您可以使用OPENROWSET
直接在SQL服务器
中读取您的CSV
文件
您需要启用 "Ad Hoc Distributed Queries":
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
GO
EXEC sp_configure 'ad hoc distributed queries', 1
GO
RECONFIGURE
GO
然后你这样定义数据源:
SELECT *
FROM OPENROWSET(
'Microsoft.ACE.OLEDB.12.0',
'Text;Database=C:\Temp\;IMEX=1;', -- the path to csv file
[data_file#csv] -- csv file name, please note # instead of dot
) as t
如果您的文件是真正的 CSV(逗号分隔),那么它应该可以使用默认设置。
如果您的文件不是真正的 CSV(逗号分隔),您可以定义自己的文件格式,只需将名为“SCHEMA.INI
”的文件放在与 csv 文件相同的文件夹中即可。
此 schema.ini 文件必须包含一个包含数据文件结构定义的部分。 (在此处查看详细信息 Schema.ini File (Text File Driver))
示例:
[data_file.csv]
Format=Delimited(;)
DecimalSymbol=.
ColNameHeader=True
MaxScanRows=10
Col1=ID Long
Col2=DESCR char width 4
Col3=FIELD_X char width 255
Col4=FIELD_Y DateTime
...
...
Coln=aFieldName aDataType aWidth
Can i do search from csv file without importing it in SQL?
是的,有很多方法。如果你在 Windows 上,你可以使用命令提示符 find
命令。 find "string to find" C:\Windows\file.csv
If there any specific method/way to store data?
取决于您需要如何处理比赛。您需要对结果做什么?
Is there any tools for text search or it can be done in MS SQL?
两者都是。如果数据库不是关系数据,可能 不是存储数据的最佳位置。如果您需要在这些文本文件中查找特定模式,请查看正则表达式。
我在 csv 文件中有数百万条记录,我需要进行字符串比较并在 Bootstrap 数据 table 中显示过滤后的记录。 CSV 文件每天更新数百万条记录。
注意: 如果我将 csv 文件导入 sql 数据库并在 table 中应用搜索查询来获取结果,这会花费很多时间。
我可以从 csv 文件进行搜索而不将其导入 SQL 吗? 有没有具体的method/way来存储数据? 是否有任何文本搜索工具或可以在 MS SQL 中完成? 我们将不胜感激。
您可以使用OPENROWSET
直接在SQL服务器
CSV
文件
您需要启用 "Ad Hoc Distributed Queries":
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
GO
EXEC sp_configure 'ad hoc distributed queries', 1
GO
RECONFIGURE
GO
然后你这样定义数据源:
SELECT *
FROM OPENROWSET(
'Microsoft.ACE.OLEDB.12.0',
'Text;Database=C:\Temp\;IMEX=1;', -- the path to csv file
[data_file#csv] -- csv file name, please note # instead of dot
) as t
如果您的文件是真正的 CSV(逗号分隔),那么它应该可以使用默认设置。
如果您的文件不是真正的 CSV(逗号分隔),您可以定义自己的文件格式,只需将名为“SCHEMA.INI
”的文件放在与 csv 文件相同的文件夹中即可。
此 schema.ini 文件必须包含一个包含数据文件结构定义的部分。 (在此处查看详细信息 Schema.ini File (Text File Driver))
示例:
[data_file.csv]
Format=Delimited(;)
DecimalSymbol=.
ColNameHeader=True
MaxScanRows=10
Col1=ID Long
Col2=DESCR char width 4
Col3=FIELD_X char width 255
Col4=FIELD_Y DateTime
...
...
Coln=aFieldName aDataType aWidth
Can i do search from csv file without importing it in SQL?
是的,有很多方法。如果你在 Windows 上,你可以使用命令提示符 find
命令。 find "string to find" C:\Windows\file.csv
If there any specific method/way to store data?
取决于您需要如何处理比赛。您需要对结果做什么?
Is there any tools for text search or it can be done in MS SQL?
两者都是。如果数据库不是关系数据,可能 不是存储数据的最佳位置。如果您需要在这些文本文件中查找特定模式,请查看正则表达式。