我的 SonarQube 在 Microsoft Azure 的 VM 实例上运行。现在 SonarQube 的数据库是 MySQL,我正在尝试将 MySQL 更改为 Azure SQL 数据库,但是由于 ActiveRecord 组件中发生的一些错误,SonarQube 无法连接 Azure SQL 数据库。我知道 SonarQube 不正式支持 Azure SQL 数据库并支持下面的 SQL Server,但是 Azure SQL 数据库与 SQL Server 兼容,因此可以连接 Azure SQL 数据库。如果有人知道,请告诉我如何连接 Azure SQL 数据库。
sonar.properties:
sonar.jdbc.username=sonar@<server>
sonar.jdbc.password=<password>
sonar.jdbc.driverClassName=net.sourceforge.jtds.jdbc.Driver
jdbc:jtds:sqlserver://<server>.database.windows.net:1433/<databasename>;ssl=require
Run Code Online (Sandbox Code Playgroud)
错误跟踪:
org.jruby.rack.RackInitializationException: no connection available
from arjdbc/jdbc/RubyJdbcConnection.java:517:in `set_native_database_types'
from /opt/sonar/web/WEB-INF/gems/gems/activerecord-jdbc-adapter-1.1.3/lib/arjdbc/jdbc/connection.rb:61:in `initialize'
from /opt/sonar/web/WEB-INF/gems/gems/activerecord-jdbc-adapter-1.1.3/lib/arjdbc/jdbc/adapter.rb:31:in `initialize'
from /opt/sonar/web/WEB-INF/gems/gems/activerecord-jdbc-adapter-1.1.3/lib/arjdbc/jdbc/connection_methods.rb:6:in `jdbc_connection'
from org/jruby/RubyKernel.java:2227:in `send'
from /opt/sonar/web/WEB-INF/gems/gems/activerecord-2.3.15/lib/active_record/connection_adapters/abstract/connection_pool.rb:223:in `new_connection'
from /opt/sonar/web/WEB-INF/gems/gems/activerecord-2.3.15/lib/active_record/connection_adapters/abstract/connection_pool.rb:245:in `checkout_new_connection'
from /opt/sonar/web/WEB-INF/gems/gems/activerecord-2.3.15/lib/active_record/connection_adapters/abstract/connection_pool.rb:188:in `checkout'
from org/jruby/RubyKernel.java:1519:in `loop' …Run Code Online (Sandbox Code Playgroud) 我有一个Azure Webjob,可以将大型CSV(500 MB到10+ GB)复制到SQL Azure表中.我每天都会获得一个新的CSV并且我只保留1个月的记录,因为将它们保存在SQL中是很昂贵的,所以它们非常不稳定.
为了让它们开始,我批量上传了上个月的数据(~200 GB),我看到所有30个CSV文件同时被处理.这导致上传中非常疯狂的备份,如下图所示:

我有大约5页看起来像这样计算所有的重试.如果我一次上传2个,一切都很棒!但是从运行时间可以看出,有些可能需要14个多小时才能完成.
我想要做的是批量上传30个CSV并让Webjob一次只处理3个文件,然后一旦完成,就开始下一个.这可能与当前的SDK有关吗?
请帮忙
我公司一直致力于使用我们Azure的SQL数据库表的GUID作为主键的罪(它实际上是比这更糟糕:我们使用VARCHAR(36),而不是唯一标识符).因此,我们最终得到碎片索引.它们看起来像这样:
CREATE TABLE OldTable (
Id VARCHAR(36) PRIMARY KEY CLUSTERED NOT NULL DEFAULT NEWID(),
CreateTime DATETIME2 NOT NULL,
...
)
Run Code Online (Sandbox Code Playgroud)
我通过创建新表"修复"了这个问题.这一次,我为CLUSTERED INDEX使用了一个不可变的,不断增加的DATETIME2(例如CreateTime)列,并将VARCHAR(36)保持为PRIMARY KEY,但这次是NONCLUSTERED.像这样:
CREATE TABLE NewTable (
Id VARCHAR(36) PRIMARY KEY NONCLUSTERED NOT NULL DEFAULT NEWID(),
CreateTime DATETIME2 NOT NULL INDEX IX_NewTable_CreateTime CLUSTERED,
)
Run Code Online (Sandbox Code Playgroud)
然后我使用INSERT INTO NewTable SELECT*FROM OldTable将旧表中的行"复制"到新表中.最后,我重命名表并删除旧表.生活似乎很好.
令我惊讶的是,几周之后,我发现NewTable有许多碎片索引,平均碎片率高达80%!甚至IX_NewTable_CreateTime也报告了18%的碎片.
INSERT INTO是否将索引分散?请问REBUILD指数能解决问题吗?
我正在使用 SQL Server Management Studio 2016(预览版)提供的 sqlpackage.exe 将数据库发布到 SQL Azure(从以前从本地数据库服务器导出的 bacpac 文件)。
问题是这个数据库是用 S0 服务目标创建的(我认为这是默认的)。
我希望能够使用 sqlpackage.exe 在导入命令中设置目标的服务目标。
我已经搜索了答案,但在此处提供的 sqlpackage.exe 文档中找不到任何内容:
https://msdn.microsoft.com/en-us/library/hh550080(v=vs.103).aspx
我看到管理工作室 UI 允许设置服务目标,我知道它在下面使用 sqlpackage.exe。
任何人都知道如何完成这项工作?
sql-server azure sql-server-2014 sql-server-2016 azure-sql-database
我在具有SQL Server的Azure中有一个虚拟机,并希望通过SQL Azure虚拟机中的SSIS从本地SQL Server中获取夜间数据。我读到需要为Azure VM SSIS设置VNET才能访问本地SQL Server数据。那是对的吗?如果是这样,需要设置什么?
我知道Azure ExpressRoute是另一种选择,但由于我们每晚没有大量数据要传输,因此考虑到与之相关的高成本,我们认为这可能不是理想的选择。
我创建了一个 Runbook 来处理我的多维数据集的多个分区。我启动了它,3 小时后,它停止了。输出窗格中没有错误消息或警告,也没有任何内容。我唯一的消息是这个
Exception
The job was evicted and subsequently reached a Stopped state. The job cannot continue running
我完全不知道它停止的原因。
任何的想法 ?
我使用 bwlow 代码通过 sqlalchemy 连接到 MS SQL,现在它已迁移到 azure cloud。我尝试更改值代码,但我认为这不是连接 ActiveDirectoryPassword 的正确方法
import sqlalchemy
from sqlalchemy import event, create_engine
# OLD connection string
engine = sqlalchemy.create_engine("mssql+pyodbc://" + "username" + ":" + "passkey" + "@" + "server" + "/" + "Database" + "?driver=SQL+Server"
@event.listens_for(engine, 'before_cursor_execute')
def receive_before_cursor_execute(conn, cursor, statement, params, context, executemany):
if executemany:
cursor.fast_executemany = True
cursor.commit()
# New connection string (for Active directory connection - not working)
engine = sqlalchemy.create_engine("mssql+pyodbc://" + "abc@domain.com" + ":" + "passkey" + "@" + "xxxx-svsql1.database.windows.net" …Run Code Online (Sandbox Code Playgroud) 也许这已经被问了很多,但我找不到关于它的全面帖子。
问:当你不想将 ids 从数据库传递到前端时,有什么选择?您不希望用户能够看到您的数据库中有多少记录。
到目前为止我发现/听到的:
问:你认识其他人或者你有这些方面的经验吗?有哪些性能和技术问题?如果您知道,请提供有关此主题的文档和博客文章。
database sql-server entity-framework-core azure-sql-database asp.net-core
我有一个非常简单的 ADF 管道,用于将数据从本地 mongoDB(自托管集成环境)复制到 Azure SQL 数据库。
我的管道能够从 mongoDB 复制数据并插入到 SQL 数据库中。目前,如果我运行管道,它会在多次运行时插入重复数据。
我已经将 _id 列作为 SQL 数据库中的唯一列,现在运行管道抛出和错误,因为 SQL 约束不会让它插入记录。
如何在插入 SQL 数据库之前检查重复的 _id?
我应该使用预复制脚本/存储过程吗?一些指导/说明将有助于在何处添加额外步骤。谢谢
azure azure-data-factory azure-sql-database azure-data-factory-2
azure ×7
sql-server ×6
asp.net-core ×1
automation ×1
database ×1
jruby ×1
python ×1
ruby ×1
runbook ×1
sonarqube ×1
sqlalchemy ×1
ssis ×1