Eventos
31 de mar., 23 - 2 de abr., 23
O maior evento de aprendizado de SQL, Fabric e Power BI. 31 de março a 2 de abril. Use o código FABINSIDER para economizar $ 400.
Registre-se hoje mesmoNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Aplica-se a: SQL Server
Descreve como carregar ou migrar arquivos para FileTables.
O método que você escolhe para carregar ou migrar arquivos para uma FileTable depende em onde os arquivos estão armazenados atualmente.
Localização atual dos arquivos | Opções de migração |
---|---|
Os arquivos estão atualmente armazenados no sistema de arquivos. O SQL Server não tem conhecimento dos arquivos. |
Como uma FileTable é semelhante a uma pasta no sistema de arquivos do Windows, você pode carregar arquivos com facilidade em uma nova FileTable usando qualquer um dos métodos disponíveis para mover ou copiar arquivos. Esses métodos incluem o Explorador de Arquivos, opções de linha de comando, inclusive xcopy e robocopy, além de scripts ou aplicativos personalizados. Você não pode converter uma pasta existente em um FileTable. |
Os arquivos estão atualmente armazenados no sistema de arquivos. O SQL Server contém uma tabela de metadados que possui ponteiros para os arquivos. |
A primeira etapa é mover ou copiar os arquivos usando um dos métodos mencionados acima. A segunda etapa é atualizar a tabela existente de metadados para apontar para o novo local dos arquivos. Para obter mais informações, consulte Exemplo: migrar arquivos do sistema de arquivos para um FileTable neste artigo. |
Você pode usar os seguintes métodos para carregar arquivos em uma FileTable:
Arrastar e soltar arquivos das pastas de origem para a pasta da nova FileTable no Windows Explorer.
Usar opções de linha de comando, tais como move
, copy
, xcopy
ou robocopy
, no prompt de comando ou em um script ou arquivo em lotes.
Escrever um aplicativo personalizado para mover ou copiar os arquivos em C# ou no Visual Basic .NET. Chamar métodos do namespace System.IO
.
Neste cenário, seus arquivos são armazenados no sistema de arquivos, e você tem uma tabela de metadados no SQL Server que contém ponteiros para os arquivos. Você deseja mover os arquivos para uma FileTable e, em seguida, substituir o caminho UNC original de cada arquivo dos metadados pelo caminho UNC da FileTable. A função GetPathLocator ajuda você a atingir esse objetivo.
Para este exemplo, suponha a existência de uma tabela de banco de dados, PhotoMetadata
, contendo dados sobre fotografias. Essa tabela tem uma coluna UNCPath
do tipo varchar(512) que contém o caminho UNC real para um arquivo .jpg
.
Para migrar os arquivos de imagem do sistema de arquivos para uma FileTable, você deve fazer o seguinte:
Crie uma nova FileTable para armazenar os arquivos. Este exemplo usa o nome da tabela dbo.PhotoTable
, mas não mostra o código para criar a tabela.
Use xcopy ou uma ferramenta semelhante para copiar os arquivos .jpg
, com a respectiva estrutura de diretórios, no diretório raiz do FileTable.
Corrija os metadados na tabela PhotoMetadata
usando um código semelhante ao seguinte exemplo:
-- Add a path locator column to the PhotoMetadata table.
ALTER TABLE PhotoMetadata ADD pathlocator HIERARCHYID;
-- Get the root path of the Photo directory on the File Server.
DECLARE @UNCPathRoot VARCHAR(100) = '\\RemoteShare\Photographs';
-- Get the root path of the FileTable.
DECLARE @FileTableRoot VARCHAR(1000);
SELECT @FileTableRoot = FileTableRootPath('dbo.PhotoTable');
-- Update the PhotoMetadata table.
-- Replace the File Server UNC path with the FileTable path.
UPDATE PhotoMetadata
SET UNCPath = REPLACE(UNCPath, @UNCPathRoot, @FileTableRoot);
-- Update the pathlocator column to contain the pathlocator IDs from the FileTable.
UPDATE PhotoMetadata
SET pathlocator = GetPathLocator(UNCPath);
Um FileTable se comporta como uma tabela normal para operações em massa. Uma FileTable tem restrições definidas pelo sistema que assegura que a integridade do namespace de arquivo e diretório seja mantida. Essas restrições têm de ser verificadas nos dados carregados em massa na FileTable. Algumas operações de inserção em massa permitem ignorar as restrições de tabela. Os requisitos a seguir são impostos.
As operações de carregamento em massa que impõem restrições podem ser executadas em uma FileTable como em qualquer outra tabela. Essa categoria inclui as seguintes operações:
CHECK_CONSTRAINTS
.BULK INSERT
com a cláusula CHECK_CONSTRAINTS
.INSERT INTO ... SELECT * FROM OPENROWSET(BULK ...)
sem a cláusula IGNORE_CONSTRAINTS
.Operações de carregamento em massa que não impõem restrições falham a menos que as restrições definidas pelo sistema da FileTable estejam desabilitadas. Essa categoria inclui as seguintes operações:
CHECK_CONSTRAINTS
.BULK INSERT
sem a cláusula CHECK_CONSTRAINTS
.INSERT INTO ... SELECT * FROM OPENROWSET(BULK ...)
com a cláusula IGNORE_CONSTRAINTS
.Você pode usar vários métodos para carregar arquivos em massa em uma FileTable:
Chame com a cláusula CHECK_CONSTRAINTS
.
Desabilite o namespace da FileTable e chame sem a cláusula CHECK_CONSTRAINTS
. Em seguida, reabilite o namespace da FileTable.
Para obter informações sobre como desabilitar as restrições de FileTable, consulte Gerenciar FileTables.
Para carregar os arquivos em massa em uma FileTable sem a sobrecarga de impor as restrições definidas pelo sistema, você pode desabilitar temporariamente as restrições. Para obter mais informações, consulte Gerenciar FileTables.
Eventos
31 de mar., 23 - 2 de abr., 23
O maior evento de aprendizado de SQL, Fabric e Power BI. 31 de março a 2 de abril. Use o código FABINSIDER para economizar $ 400.
Registre-se hoje mesmoTreinamento
Módulo
Carregar dados em um data warehouse do Microsoft Fabric - Training
Explore o processo de carregamento de dados em um data warehouse no Microsoft Fabric.