【问题标题】:Can local file system be an SQL Server external data source?本地文件系统可以作为 SQL Server 外部数据源吗?
【发布时间】:2021-12-12 13:48:57
【问题描述】:

我刚刚接管了对 ASP.NET MVC 网站的支持。实时站点在 Azure 中运行,并使用 Azure 存储进行上传。它的功能之一是导入 Excel 电子表格并使用其中的数据更新 SQL Server。 Azure 存储是 SQL Server 中的外部数据源。 excel 数据被提取为 csv 文件,这些是 SQL Server 更新的来源。

我正在本地运行应用程序,在 Visual Studio 中,使用本地 SQL Server。这样做时,将导入到本地文件系统。但是,处理电子表格的代码失败了,因为它希望电子表格在外部数据源中,而不是在本地文件系统中。

我认为我需要做的就是将本地文件系统设置为 SQL Server 中的外部数据源,但我在文档中看不到这样做的方法。有办法吗?我不希望在本地运行时更改代码以执行不同的操作。

【问题讨论】:

    标签: sql-server asp.net-mvc azure


    【解决方案1】:

    外部数据源用于建立连接并支持这些主要用例:

    • 使用PolyBase 进行数据虚拟化和数据加载
    • 使用BULK INSERTOPENROWSET 进行批量加载操作

    如果您使用 Azure 存储作为 SQL Server 中的外部数据源,并将本地文件系统设置为 SQL Server 中的外部数据源:

    SQL Server 语法

    CREATE EXTERNAL DATA SOURCE <data_source_name>
    WITH
      ( [ LOCATION = '<prefix>://<path>[:<port>]' ]
        [ [ , ] CONNECTION_OPTIONS = '<key_value_pairs>'[,...]]
        [ [ , ] CREDENTIAL = <credential_name> ]
        [ [ , ] PUSHDOWN = { ON | OFF } ]
        [ [ , ] TYPE = { STORAGE_TYPE } ]
        [ [ , ] RESOURCE_MANAGER_LOCATION = '<resource_manager>[:<port>]' )
    [ ; ]
    

    请参阅此 Microsoft 文档Create external data source to reference a SQL Server named instance via PolyBase connectivity for clear information.

    【讨论】:

    • 我自己已经阅读了这份文档。我不清楚它是否包括将本地文件系统设置为外部数据源,这个答案对我没有帮助。
    • FILESTREAM 使基于 SQL Server 的应用程序能够存储非结构化数据。 FILESTREAM 通过将 varbinary(max) 二进制大对象 (BLOB) 数据作为文件存储在文件系统上,将 SQL Server 数据库引擎与 NTFS 或 ReFS 文件系统集成。 Transact-SQL 语句可以插入、更新、查询、搜索和备份 FILESTREAM 数据。请参考此MSFT documentation 以了解有关使用 Transact-SQL 语句将文件系统作为外部数据源访问的更多信息。
    • 您好@Ian - 如果答案有帮助,请Accept it as an Answer,以便遇到相同问题的其他人可以找到此解决方案并解决他们的问题。
    猜你喜欢
    • 2018-05-13
    • 2010-12-21
    • 2017-06-08
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 2017-09-11
    • 1970-01-01
    相关资源
    最近更新 更多