工作与蔚蓝的地方发展的存储通过短程(sql服务器的管理工作室)
-
09-10-2019 - |
题
我尝试写代码的访问我azure地方发展的储存。我开始通过创建一个新的存储对自己说:
dsInit /forceCreate
我现在可以看到DevelopmentStorageDb20090919在短程用一些预先创建的表如dbo。TableContainer,dbo。TableRow等。
- 现在,我可以简单地增加表到这个数据库通过短程(ex。雇员表),并开始访问它们通过代码?这是正确的方式做东西?
例如:
var svc = CloudStorageAccount.DevelopmentStorageAccount
.CreateCloudTableClient().GetDataServiceContext();
//"Employees" is the name of the table
svc.AddObject("Employees", new Employees("John Doe"));
svc.SaveChangesWithRetries();
2.另外,一旦我都做了,我怎么口的表格和数据变为实际的云的帐户吗?通过运行的剧本吗?
解决方案
只要该表的存在,是的,您编写的代码将在员工表中添加“ John Doe”。虽然通过SSM查看数据可能会很有趣,并且您可以尝试以这种方式更改数据,但我不建议尝试使用它。开发存储很有趣,而无需用棍子戳它。开发存储与实际云存储之间存在差异,因此我发现您越早停止使用Dev Storage越早。
目前,尚无奇特的方式可以在Azure表之间传输数据(无论是在Dev Storage还是在云中)。它归结为运行一个查询,该查询从源表中选择所有内容,然后将每个项目写入目标表。根据如何分区数据,您可能可以批处理写作,否则您可以并行进行。如果您愿意直接使用REST API,则可以避免存储库在编写每个项目之前必须对其进行挑选。
其他提示
我认为您将Azure Table存储与SQL Server或SQL Azure混淆,这些SQL Server或SQL Azure完全不同。您无法使用SSM访问Azure存储表。您提供的代码示例是使用Azure SDK(使用下面的存储REST API)。这是访问Azure存储的唯一方法。
如果要以更图形的方式创建 /查看表,请尝试Cerebrata的 云存储工作室, ,笨拙的 Azurexplorer, ,大卫·帕尔曼(David Pallman)的 Azure Storage Explorer, ,或其他类似的工具。这些工具都依赖于SDK或直接API调用。
现在,关于您的代码:您需要在插入对象之前创建表。请参阅createtablesfromemel()和createtablefnotexist()。这 Azure平台培训套件 具有用于创建和使用表的出色介绍/实验室,并显示了如何使用createTablesFromosdel()。
即使这是最佳使用Api谈到DevStorage,有可能的情况下直接访问数据库可能证明是有益的。更具体地说,它可用于规避的一些SDK问题特DevStorage.
我曾经遇到的一个问题重新命名的大blob-该行动将只是时间出来(注意,blob不能被重命名-他们首先需要复制使用CopyFromBlob()然后删除)。我试过在蔚蓝的存储资源管理器,并通过编写代码和增加所有的超时。解决方案吗?SQL救援!
这里是一个例子SQL,将重新命名blob内容器或将其转到一个不同的一种:
begin tran
alter table CommittedBlock nocheck constraint BlockBlob_CommittedBlock
update CommittedBlock set BlobName = @TargetBlobName, ContainerName = @TargetContainerName where BlobName = @SourceBlobName and ContainerName = @SourceContainerName
update BlockData set BlobName = @TargetBlobName, ContainerName = @TargetContainerName where BlobName = @SourceBlobName and ContainerName = @SourceContainerName
update Blob set BlobName = @TargetBlobName, ContainerName = @TargetContainerName where BlobName = @SourceBlobName and ContainerName = @SourceContainerName
alter table CommittedBlock with check check constraint BlockBlob_CommittedBlock
rollback tran
当然,使用它在你自己的风险-这是一个 完全 不支持的方式的工作与开发stotage.