我有一个数据库增量文件(.sql),它包含 sql 语句,例如 Insets、Delete、Update。数据库是用表和数据设置的,我只是想执行这些更新
我正在尝试找到一种方法来在 Azure ADF 中实现解决方案,以读取 blob 存储中的此文件并在 MySQL 数据库上执行这些语句。特别是使用“复制数据”活动,因为它是资源密集型的,而且我也希望不要对每个语句进行活动调用。如果这可能的话,我将不胜感激?
我的文件包含大约 2800 万个插入内容。我希望能够利用复制数据活动来实现这一目标。
谢谢你
我有一个文件开头的示例,其余部分遵循类似的语句。
BEGIN TRANSACTION;
INSERT INTO FILE(sha256,sha1,md5,crc32,file_name,file_size,package_id) VALUES('000005A9BB818F8B3493DDCED88D1789679046E84ABE71EC3A79A1ED4DE815E2','30330D39A84E2B7B240F1DD8904AC5DAA1DD263C','3DD77458C9D1C38CF5880E08816CAEFE','66058703','.rela.text.frida_socket_host_session_provider_host_entry_class_init',1416,298522);
INSERT INTO FILE(sha256,sha1,md5,crc32,file_name,file_size,package_id) VALUES('000005A9BB818F8B3493DDCED88D1789679046E84ABE71EC3A79A1ED4DE815E2','30330D39A84E2B7B240F1DD8904AC5DAA1DD263C','3DD77458C9D1C38CF5880E08816CAEFE','66058703','.rela.text.frida_socket_host_session_provider_host_entry_class_init',1416,298553);
INSERT INTO FILE(sha256,sha1,md5,crc32,file_name,file_size,package_id) VALUES('000005A9BB818F8B3493DDCED88D1789679046E84ABE71EC3A79A1ED4DE815E2','30330D39A84E2B7B240F1DD8904AC5DAA1DD263C','3DD77458C9D1C38CF5880E08816CAEFE','66058703','.rela.text.frida_socket_host_session_provider_host_entry_class_init',1416,298615);
INSERT INTO FILE(sha256,sha1,md5,crc32,file_name,file_size,package_id) VALUES('000005A9BB818F8B3493DDCED88D1789679046E84ABE71EC3A79A1ED4DE815E2','30330D39A84E2B7B240F1DD8904AC5DAA1DD263C','3DD77458C9D1C38CF5880E08816CAEFE','66058703','.rela.text.frida_socket_host_session_provider_host_entry_class_init',1416,299558);
INSERT INTO FILE(sha256,sha1,md5,crc32,file_name,file_size,package_id) VALUES('0000070B8C662EABB12B94C87CFD44DF7EA729B92C03B9F2336BA226D0A4D87C','5DF28838F14488AE757A26E8D294B8557F0DDA92','D2D35205949F5DF7D068AE05143CBA1F','3F045301','STRINGSSV.JS',14324,298858);
INSERT INTO FILE(sha256,sha1,md5,crc32,file_name,file_size,package_id) VALUES('0000070B8C662EABB12B94C87CFD44DF7EA729B92C03B9F2336BA226D0A4D87C','5DF28838F14488AE757A26E8D294B8557F0DDA92','D2D35205949F5DF7D068AE05143CBA1F','3F045301','STRINGSSV.JS',14324,298866);
我希望能够利用复制数据活动来实现这一目标。
复制数据是将数据从文件传输到数据库。它不会执行 MySQL 数据库文件中的 SQL 语句。
为此,您可以在here查看我的答案,以执行从
.sql
文件到Azure MySQL数据库的语句
另一种解决方法可以是从存储帐户 FileShare 将文件导入到 MySQL,如下所示:
导航到门户上的 Azure Database for MySQL 服务器并运行 Azure Cloud Shell (Bash)。如果您第一次运行此命令,它将要求您创建一个存储容器,这将在其中安装一个 Azure 文件.
在 Cloud shell 中输入 df 并收集 Azure 文件路径
上传您在 bash 命令输出中获得的存储帐户文件共享中的 SQL 文件,该文件位于文件系统“cs110032001d078f3ab”下,在 Azure 门户上导航到该文件系统,如下面的屏幕截图所示,然后上传您的 SQL 文件。
cd /usr/csuser/clouddrive
。$ mysql -h Azuremysql.mysql.database.azure.com -u admin -p database <sqlsample.sql
输出: