问题标签 [azure-sql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - 定期将 SQL Server 传输到 Azure SQL
我完全被困住了。让我描述一下我的情况。
我们是一家相对较小的公司,我们的绝大多数运营数据都包含在供应商数据库中。我们的供应商提供数据仓库服务。他们获取了我们所有的数据,并对其应用了一些 OLAP-ish 建模。每天,他们将 .bak 或 .diff 文件(.bak 每周一次,.diff 每隔一天)放在我们付费访问的 FTP 端点中。目前,我们使用 PowerShell 脚本将这些数据下载到位于本地服务器场的服务器上,然后我们使用 SQL Server 通过从中恢复来“补充数据”。
这一切都很好,但我们真的希望将尽可能多的工作负载转移到云中(我们使用 Azure)。据我所知,SQL 托管实例是我们可以从云中的 .bak 文件恢复的唯一方法。这比我们需要的要贵得多,而且我们真的根本不需要托管实例平台,除了从这个文件中恢复。
基本上,有关当前流程的所有内容都与我们将其迁移到云上截然相反,除非我们愿意支付的费用甚至超过出租该服务器场的费用。
我正试图游说他们使用不同的方法来获取他们的数据,但我在想出一种方法来提出建议时遇到了麻烦。我们每天都需要将大约 40GB 的数据库从 SQL Server(在我们的供应商处)传输到 Azure SQL(在我们的云中)。我们可以做到这一点的最少侵入方式是什么?
powershell - 设置 PowerShell Azure SQL 连接字符串参数
我在一个资源组中有一个Azure SQL 数据库,在一个单独的资源组中有一个密钥保管库。一切都已部署,但我想将sql db 的连接字符串值分配给一个变量并使用它在我的密钥库资源中创建一个秘密。我目前将此设置为连接字符串值:
$dbsecretvalue = ConvertTo-SecureString -String "Server=tcp:$sqlServerfqdn,1433;初始目录=$database;Persist Security Info=False;用户 ID=$adminlogin;Password=$password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate =假;连接超时=30" -AsPlainText -Force
问题在于密钥保管库中,此附加文本被添加到机密值中,而不仅仅是服务器名称: Server=tcp: @{FullyQualifiedDomainName =servername.azure.net......
如何删除附加文本,以便在设置变量时仅返回我的 sql db的FQDN (例如:databaseserver.azure.net 而不是 @{FullyQualifiedDomainName=databaserver.azure.net)?我的 powershell 经验非常有限,因此将不胜感激任何帮助/建议。
谢谢!
performance - 在 SQL 中处理 14 亿条记录的最佳方法
我谦虚地请求您帮助我处理以下场景,在我的项目中,我必须处理表格中的时间序列数据。我们正在使用 Azure SQL Server。
该表dbo.batch_events
有14亿行,表结构和样本数据请看下面的截图:
我必须将表中的equipment_name
列中的设备名称dbo.batch_events
转换为列名,并将转换后的值加载到dbo.time_series
表中。
如果我旋转设备名称列,我将在dbo.time_series
表中创建 685 列。
请参阅下面的屏幕截图,其中显示dbo.time_series
了源表中显示的示例数据的目标表 ( ) 结构和预期输出。
请告知用 SQL 编写查询的最佳方法和方法是什么。
我编写的查询需要 25 个小时来处理 14 亿条记录并将它们加载到目标表中。
我在源表 ( ) 的 time_stamp 列上创建了按天分区,dbo.batch_events
并创建了两个非聚集索引 - 一个在设备名称上,另一个在时间戳列上。
我谦虚地请求您建议我为这种情况编写查询的最佳方法。
我创建的存储过程一次处理一个月的数据;一个月内,我们有大约 1.2 亿行要处理。
通过从表中获取最小和最大日期,使用
While
循环将每个月的条目放入表中。所以,我在这个表中有 12 个条目,每个条目代表一个月。start_date
end_date
dbo.Iteration_ctrl
dbo.Batch_events
使用
while
循环遍历表中的 12start_date
和end_date
条目dbo.Iteration_ctrl
,并在 while 循环中使用数据透视查询将数据加载到dbo.Time_series
表中。
请参阅我编写的存储过程,这需要 25 小时(在我看来效率低下)。任何帮助将不胜感激。
azure-sql-database - AzureSQL PaaS不同数据库表的DML操作
全部,
我们正在将数据库从 SQLServer 2012 迁移到 AzureSQL PaaS DB。在很多存储过程中,我们有如下代码:
使用 ClaimDB1 去
删除 ClaimDB2.dbo.Claims Where Claimdate < '12/01/2020'</p>
数据库 ClaimDB1 和 ClaimDB2 位于同一台服务器中。
鉴于在 EXTERNAL TABLEs 上不允许 DML 操作,在 AzureSQL PaaS 世界中完成相同操作的各种模式是什么?
谢谢,格拉吉
azure-data-factory-2 - 如何将大列(> 4000 个字符)从 CSV 导入数据库表
我们有一个包含几列的大型 CSV 文件。其中一列的大数据多次跨越 4000 多个字符,并在使用数据流导入时被截断。
- ADF 数据类型为字符串
- SQL 数据类型为 Nvarchar(max)
有哪些方法可以成功导入没有截断的数据
azure-sql-database - Azure SQL 单数据库(无服务器)自动暂停与 SSMS(SQL Server Management Studio)
我们正在运行 Azure SQL 单一数据库(无服务器层),并且我们的开发环境 SQL 服务器出现问题,尽管 DB 未使用且自动暂停配置正确,但 SQL 服务器似乎没有暂停。
如果它有一个打开的查询窗口但我们不知道如何防止它,我们已将其缩小到对 DB 运行以下 SQL 查询的 SSMS。
此查询在 SSMS 打开时每 5 到 7 分钟运行一次。这给我们带来了相当大的头痛和成本。
有谁知道 SSMS 的什么功能正在调用此查询以及如何将其关闭?
asp.net-core - Azure SQL 使用 MS 身份平台通过 API 以用户身份进行身份验证
我有一个调用 ASP.NET Core 3.1 Web API 的 ASP.NET Core 3.1 Web 应用程序,它反过来访问 Azure SQL 数据库。身份验证通过 MSAL(Microsoft 身份平台)提供 - 即使用相对较新的Microsoft.Identity.Web
库Microsoft.Identity.Web.UI
。
目标是确保用户在自己登录的上下文下通过 API 从 SQL 中提取数据,从而实现行级安全、访问审计和其他好处。
我已经成功地让登录过程为 Web 应用程序工作 - 并通过它获得一个有效的访问令牌,以使用我在向 AD 注册后者时创建的范围访问 API。
当我从 Visual Studio 本地运行 API 和应用程序时,一切都按预期工作 - 为应用程序提供了正确的访问令牌以访问 API,并为访问 SQL 提供了 API - 在这两种情况下,都是在用户(即我的)身份下.
但是,当我将 API 发布到 Azure 上的 App Services 并从 Web App 的本地版本或 App-Services 托管版本访问它时,API 访问 SQL 的访问令牌包含 API 的应用程序身份(系统分配的托管身份),而不是用户的身份。虽然我可以将 SQL 作为应用程序来访问,但这不是我们所需要的。
GetAccessTokenForUserAsync
Web 应用程序使用以下方法获取其访问令牌ITokenAcquisition
- 将我为 API 定义的单个范围作为参数。
API 获取其令牌(以访问 SQL),如下所示:
...其中 _tenantId 是订阅的租户 ID。
我已将 SQL Azure 数据库“user_impersonation”API 权限添加到 API 的 AD 注册中——但这并没有帮助。顺便说一句,出于某种原因,Azure 将此权限的全名命名为https://sql.azuresynapse.usgovcloudapi.net/user_impersonation
- 这有点令人担忧,因为这只是一个位于英国的常规 Azure 帐户。
我发现了一些与此类似的帖子,但主要针对旧版本的解决方案集。我希望避免编写自己的代码来发布令牌请求——这应该由 MSAL 库处理。
我应该在登录后以某种方式从 Web 应用程序单独请求 SQL 访问范围,还是 API 应该做一些不同的事情来获取标识用户的 SQL 访问令牌?为什么在本地运行时可以完美运行?
看起来这应该是一个非常常见的用例(最常见的?),但它几乎没有记录 - 我发现的大多数文档仅指正在使用的应用程序身份,或者没有告诉您该特定技术该怎么做堆。
sql - 在 ASP.NET Core 中使用 Azure SQL 弹性数据库客户端时,是否可以使用分片信息注入 DbContext?
我想使用 Azure SQLElastic Database Client
库来管理我的 ASP.NET Core 应用程序中的 SQL Server 分片。
DbContext
目前已注入我的服务。
我知道我需要向我的DbContext
类添加一个构造函数,该构造函数接受数据相关路由所需的参数(即分片映射和分片键)。
注入上下文时如何设置这些值?
azure - 无法从逻辑应用连接到 SQL Server
我在 Azure 逻辑应用程序中连接到我的 SQL Server 时遇到问题。
我刚刚创建了一个新的 SQL Server 和数据库,现在正尝试在我的逻辑应用程序中连接到它。但是,当我输入凭据时,它似乎没有显示。我一直在关注本教程。
有谁知道为什么会这样?这可能是我可能错过的许可吗?
azure - 有没有办法为数据库 Azure SQL 禁用和重新启用 FOREIGN KEY 约束
我正在尝试截断数据库中的一些表。其中一些表具有外键。因此,当我尝试截断它们时,会出现以下错误。
无法截断表“IDN_OAUTH2_ACCESS_TOKEN”,因为它被 FOREIGN KEY 约束引用。
有没有办法在 Azure SQL(Microsoft SQL Azure (RTM) - 12.0.2000.8)中禁用 FOREIGN KEY 约束并重新启用它们?在 MySQL 中,我使用以下脚本完成了相同的操作。
设置 FOREIGN_KEY_CHECKS=0;
截断表 IDN_OAUTH2_ACCESS_TOKEN;
设置 FOREIGN_KEY_CHECKS=1;