Azure存储帐户中可用的bacpac文件很少,现在我的查询是:
如果这是不可能的,什么是其他解决办法,以提取数据从BACPAC文件。要求是用户可以根据需要查询这些数据(非常罕见),他们不希望数据一直可用。请提供帮助和建议。一个更新如下所示,在Synapse SQL Pool Serverless的屏幕截图中,没有恢复任何数据库的选项
wooyq4lh1#
根据此document,无法在无服务器池中创建表。因此,您将无法在无服务器的SQL池中恢复bacpac文件。根据你在评论中提到的方法。如果你特别想使用无服务器池,你可以使用下面的方法。使用import Data-tier application选项将bacpac还原到Azure SQL Server:x1c 0d1x的数据以下是Synapse管道JSON,用于将Azure SQL数据库中的所有表复制到ADLS:
import Data-tier application
{ "name": "Pipeline 1", "properties": { "activities": [ { "name": "Lookup1", "type": "Lookup", "dependsOn": [], "policy": { "timeout": "0.12:00:00", "retry": 0, "retryIntervalInSeconds": 30, "secureOutput": false, "secureInput": false }, "userProperties": [], "typeProperties": { "source": { "type": "AzureSqlSource", "sqlReaderQuery": "SELECT TABLE_SCHEMA,TABLE_NAME FROM information_schema.TABLES\nWHERE TABLE_TYPE = 'BASE TABLE' and TABLE_SCHEMA = 'dbo'", "queryTimeout": "02:00:00", "partitionOption": "None" }, "dataset": { "referenceName": "AzureSqlTable1", "type": "DatasetReference" }, "firstRowOnly": false } }, { "name": "ForEach1", "type": "ForEach", "dependsOn": [ { "activity": "Lookup1", "dependencyConditions": [ "Succeeded" ] } ], "userProperties": [], "typeProperties": { "items": { "value": "@activity('Lookup1').output.value", "type": "Expression" }, "isSequential": true, "activities": [ { "name": "Copy data1", "type": "Copy", "dependsOn": [], "policy": { "timeout": "0.12:00:00", "retry": 0, "retryIntervalInSeconds": 30, "secureOutput": false, "secureInput": false }, "userProperties": [], "typeProperties": { "source": { "type": "AzureSqlSource", "queryTimeout": "02:00:00", "partitionOption": "None" }, "sink": { "type": "DelimitedTextSink", "storeSettings": { "type": "AzureBlobFSWriteSettings" }, "formatSettings": { "type": "DelimitedTextWriteSettings", "quoteAllText": true, "fileExtension": ".csv" } }, "enableStaging": false, "translator": { "type": "TabularTranslator", "typeConversion": true, "typeConversionSettings": { "allowDataTruncation": true, "treatBooleanAsNumber": false } } }, "inputs": [ { "referenceName": "AzureSqlTable2", "type": "DatasetReference", "parameters": { "schema": { "value": "@item().TABLE_SCHEMA", "type": "Expression" } } } ], "outputs": [ { "referenceName": "DelimitedText1", "type": "DatasetReference", "parameters": { "filename": "@concat(item().TABLE_SCHEMA,'_',item().TABLE_NAME,'.CSV')" } } ] } ] } } ], "annotations": [], "lastPublishTime": "2023-07-18T06:45:47Z" }, "type": "Microsoft.Synapse/workspaces/pipelines" }
字符串然后,您可以使用从SQL数据库复制的ADLS数据创建外部表。为此,转到数据->链接选择主ADLS并选择具有数据的路径。右键单击每个文件并选择New SQL Script选择Create External Table。
New SQL Script
Create External Table
的它将获取文件的详细信息,单击继续。提供所需的无服务器数据库和表名称的详细信息。
的脚本将自动生成,并创建表。但是,您必须为所有从SQL数据库手动复制的单个文件执行此步骤,以创建相应的表。
的作为基于要求的不同选项,您最初声明将根据需要查询数据。您可以使用专用SQL池(而不是无服务器SQL池)恢复bacpac数据。您可以直接在专用SQL池中恢复数据库,就像Azure SQL Server一样。x1c4d 1x的
1条答案
按热度按时间wooyq4lh1#
根据此document,无法在无服务器池中创建表。因此,您将无法在无服务器的SQL池中恢复bacpac文件。根据你在评论中提到的方法。如果你特别想使用无服务器池,你可以使用下面的方法。
使用
import Data-tier application
选项将bacpac还原到Azure SQL Server:x1c 0d1x的数据
以下是Synapse管道JSON,用于将Azure SQL数据库中的所有表复制到ADLS:
字符串
然后,您可以使用从SQL数据库复制的ADLS数据创建外部表。为此,转到数据->链接选择主ADLS并选择具有数据的路径。右键单击每个文件并选择
New SQL Script
选择Create External Table
。的
它将获取文件的详细信息,单击继续。提供所需的无服务器数据库和表名称的详细信息。
的
脚本将自动生成,并创建表。但是,您必须为所有从SQL数据库手动复制的单个文件执行此步骤,以创建相应的表。
的
作为基于要求的不同选项,您最初声明将根据需要查询数据。您可以使用专用SQL池(而不是无服务器SQL池)恢复bacpac数据。您可以直接在专用SQL池中恢复数据库,就像Azure SQL Server一样。
x1c4d 1x的