Atualize o site Hive tables and view para Unity Catalog
Este artigo descreve como atualizar tabelas e visualizações registradas no site workspace-local Hive metastore para Unity Catalog. O senhor pode atualizar uma tabela Hive para uma tabela gerenciar ou uma tabela externa em Unity Catalog.
Gerenciar tabelas é a maneira preferida de criar tabelas em Unity Catalog. Unity Catalog totalmente gerenciado seu ciclo de vida, disposição de arquivos e armazenamento. O Unity Catalog também otimiza seu desempenho automaticamente. As tabelas gerenciais sempre usam o formato Delta formato de tabela.
As mesas gerenciar residem em um local de armazenamento gerenciar que o senhor reserva para Unity Catalog. Devido a esse requisito de armazenamento, o senhor deve usar CLONE ou CREATE TABLE AS SELECT (CTAS) se quiser copiar tabelas existentes de Hive para Unity Catalog como tabelas gerenciáveis.
Tabelas externas são tabelas cujo ciclo de vida dos dados, disposição de arquivos e local de armazenamento não são gerenciados por Unity Catalog. Há suporte a vários formatos de dados para tabelas externas.
Normalmente, as tabelas externas são usadas somente quando o senhor também precisa de acesso direto ao uso de dados nãoDatabricks compute (ou seja, não usando os depósitos Databricks clusters ou Databricks SQL ). As tabelas externas também são convenientes em cenários de migração, pois o senhor pode registrar rapidamente os dados existentes em Unity Catalog sem precisar copiar os dados. Isso se deve ao fato de que os dados em tabelas externas não precisam residir no armazenamento gerenciar reservado.
Para obter mais informações sobre gerenciar e tabelas externas em Unity Catalog, consulte O que são tabelas e visualização?
Opções de migração do Hive para o Unity Catalog
Quando estiver pronto para migrar tabelas do Hive para o Unity Catalog, o senhor tem várias opções, dependendo do seu caso de uso:
Ferramenta de migração |
Descrição |
Hive requisitos da tabela |
Tabela do Unity Catalog criada |
Por que devo usá-lo? |
---|---|---|---|---|
Um conjunto abrangente de utilidades de comando-line e outras ferramentas que avaliam a prontidão do seu workspacepara a migração para o Unity Catalog e executam o fluxo de trabalho que migra identidades, permissões, locais de armazenamento e tabelas para o Unity Catalog. O UCX está disponível no GitHub em databrickslabs/ucx. |
gerenciar ou Hive tabelas externas |
gerenciar ou externo |
O senhor deseja uma ferramenta abrangente de planejamento de upgrade workspace que vá além do upgrade das tabelas Hive para Unity Catalog. O senhor deseja atualizar o espaço de trabalho que tem grandes quantidades de dados no site Hive metastore. O senhor se sente à vontade para executar scripts. Se o senhor quiser fazer uma atualização em massa das tabelas Hive para Unity Catalog gerenciar tabelas, essa é a única opção. O UCX, como todos os projetos do Databricks Labs, é um projeto público do GitHub repo e não é apoiado diretamente pelo Databricks. |
|
Um recurso do Catalog Explorer que permite que o senhor copie em massa esquemas inteiros (bancos de dados) e várias tabelas gerenciáveis e externas do site Hive metastore para o metastore Unity Catalog como tabelas externas. O assistente de upgrade executa o comando |
gerenciar ou Hive tabelas externas |
Somente externo |
O senhor deseja atualizar rapidamente suas tabelas Hive para tabelas externas no Unity Catalog e prefere uma interface visual. A capacidade de programar sincronizações regulares quando a tabela de origem Hive é alterada faz dela uma ferramenta útil para gerenciar um Hive "híbrido" e um Unity Catalog workspace durante a transição para o Unity Catalog. |
|
|
gerenciar ou Hive tabelas externas |
Somente externo |
O senhor deseja atualizar rapidamente as tabelas do site Hive para tabelas externas no site Unity Catalog e prefere usar o comando SQL em vez de uma interface visual. Programar a execução regular Como o senhor não pode usar |
|
Os clones profundos copiam os dados e metadados da tabela de origem para o destino do clone. |
gerenciar Hive tabelas que estão no formato Delta. |
gerenciar somente |
O senhor deseja migrar Hive gerenciar tabelas para Unity Catalog gerenciar tabelas para aproveitar ao máximo a Unity Catalog governança de dados, e suas tabelas Hive atendem aos critérios listados na célula "Requisitos da tabelaHive ". Se suas tabelas Hive não atenderem aos "requisitos de tabelaHive ", o senhor poderá usar o comandoCREATE TABLE AS SELECT SQL para atualizar uma tabela Hive para uma tabela gerenciar Unity Catalog. No entanto, |
Este artigo descreve como executar todos os processos de atualização, exceto o processo de atualização orientado pelo UCX. Databricks recomenda o UCX para a maioria dos cenários de atualização do workspace. No entanto, para casos de uso mais simples, o senhor pode preferir uma ou mais das ferramentas descritas aqui.
Antes de começar
Esta seção descreve alguns dos impactos da migração para os quais o senhor deve estar preparado, juntamente com as permissões e os requisitos do site compute.
Entenda o impacto
O senhor deve estar ciente de que, ao modificar suas cargas de trabalho para usar as novas tabelas do Unity Catalog, talvez seja necessário alterar alguns comportamentos:
Unity Catalog gerencia partições de maneira diferente do Hive. Comandos Hive que manipulam partições diretamente não são suportados em tabelas gerenciadas pelo Unity Catalog.
O histórico da tabela não é migrado quando o senhor executa
CREATE TABLE CLONE
. Todas as tabelas do site Hive metastore que o senhor clonar para Unity Catalog são tratadas como novas tabelas. O senhor não pode executar a Delta Lake viagem do tempo ou outras operações que dependem do histórico pré-migração.
Para obter mais informações, consulte Trabalhar com Unity Catalog e o legado Hive metastore.
Requisitos
Para realizar migrações, o senhor deve ter:
Um workspace que possui um metastore Unity Catalog e pelo menos um catálogo Unity Catalog. Consulte Configurar e gerenciar o Unity Catalog.
Privilégios nos catálogos do Unity Catalog para os quais o senhor está migrando tabelas. Esses requisitos de privilégio são enumerados no início de cada procedimento abordado neste artigo.
Para migração para tabelas externas do Unity Catalog: credenciais de armazenamento e locais externos definidos no Unity Catalog e o privilégio
CREATE EXTERNAL TABLE
no local externo.Acesso ao site Databricks compute que atenda aos dois requisitos a seguir:
Suporta Unity Catalog (SQL warehouse ou compute recurso que usa usuário único ou modo de acesso compartilhado).
Permite o acesso às tabelas no site Hive metastore.
Como o compute recurso que usa o modo de acesso compartilhado está habilitado para o controle de acesso legado da tabela pelo default, isso significa que, se o senhor usar esse modo de acesso, deverá ter privilégios de controle de acesso da tabela no Hive metastore do qual está migrando. O senhor pode conceder acesso a si mesmo usando o seguinte comando SQL:
GRANT ALL PRIVILEGES ON catalog hive_metastore TO `<user>`
Como alternativa, o senhor pode usar um recurso compute no modo de acesso de usuário único.
Para obter mais informações sobre o gerenciamento de privilégios em objetos no site Hive metastore, consulte Hive metastore privileges and securable objects (legacy). Para obter mais informações sobre o gerenciamento de privilégios em objetos no metastore Unity Catalog, consulte gerenciar privilégios em Unity Catalog.
Identificar tabelas que são gerenciadas pelo Hive metastore
Para determinar se uma tabela está atualmente registrada no Unity Catalog, verifique o nome do catálogo. As tabelas do catálogo hive_metastore
são registradas no workspace-local Hive metastore. Todos os outros catálogos listados são regidos pelo Unity Catalog.
Para view as tabelas no catálogo hive_metastore
usando o Catalog Explorer:
Clique em Catalog na barra lateral.
No painel do catálogo, navegue até o catálogo
hive_metastore
e expanda os nós do esquema.
O senhor também pode pesquisar uma tabela específica usando o campo de filtro no painel Catalog.
Atualizar um esquema ou várias tabelas do site Hive metastore para Unity Catalog tabelas externas usando o assistente de atualização
O senhor pode copiar esquemas completos (bancos de dados) e várias tabelas externas ou gerenciais do seu Databricks default Hive metastore para o Unity Catalog metastore usando o assistente de atualização do Catalog Explorer. As tabelas atualizadas serão tabelas externas no Unity Catalog.
Para obter ajuda para decidir quando usar o assistente de upgrade, consulte Opções de migração do Hive para o Unity Catalog.
Requisitos
Requisitos de formato de dados:
Consulte Trabalhar com tabelas externas.
compute Requisitos:
Um recurso compute que suporta Unity Catalog. Consulte Antes de começar.
Requisitos de objetos e permissões do Unity Catalog:
Uma credencial de armazenamento para um IAM role que autoriza o Unity Catalog a acessar o caminho de localização das tabelas.
Um local externo que faz referência à credencial de armazenamento que o senhor acabou de criar e ao caminho para os dados em seu site cloud tenant.
CREATE EXTERNAL TABLE
permissão nos locais externos das tabelas a serem atualizadas.
Requisitos de acesso à tabela Hive:
Se o seu compute usa o modo de acesso compartilhado, o senhor precisa de acesso às tabelas no Hive metastore, concedido usando o controle de acesso legado da tabela. Consulte Antes de começar.
Processo de atualização
Clique Catálogo na barra lateral para abrir o Catalog Explorer.
Selecione
hive_metastore
como seu catálogo e selecione o esquema (banco de dados) que deseja atualizar.Clique em Atualizar no canto superior direito da view de detalhes do esquema.
Selecione todas as tabelas que deseja atualizar e clique em Avançar.
Somente tabelas externas em formatos compatíveis com o Unity Catalog podem ser atualizadas usando o assistente de atualização. Consulte Trabalhar com tabelas externas.
Defina o catálogo de destino, o esquema (banco de dados) e o proprietário de cada tabela.
Os usuários poderão acessar a tabela recém-criada no contexto de seus privilégios no catálogo e no esquema.
Os proprietários da tabela têm todos os privilégios na tabela, incluindo
SELECT
eMODIFY
. Se você não selecionar um proprietário, as tabelas gerenciadas serão criadas com você como proprietário. Databricks geralmente recomenda que você conceda propriedade de tabela a grupos. Para saber mais sobre a propriedade do objeto no Unity Catalog, consulte Gerenciar a propriedade do objeto Unity Catalog .Para atribuir o mesmo catálogo e esquema a várias tabelas, selecione as tabelas e clique no botão Definir destino .
Para atribuir o mesmo proprietário a várias tabelas, selecione as tabelas e clique no botão Definir proprietário .
Revise as configurações da tabela. Para modificá-los, clique no botão Anterior .
Clique em Criar query para atualização.
Um editor query aparece com instruções SQL geradas.
execução da query.
Quando a query é concluída, os metadados de cada tabela foram copiados do Hive metastore para Unity Catalog. Essas tabelas são marcadas como atualizadas no assistente de atualização.
Defina o controle de acesso refinado usando a guia Permissões de cada nova tabela.
(Opcional) Adicione comentários a cada tabela Hive atualizada que aponte os usuários para a nova tabela do Unity Catalog.
Retorne à tabela original no catálogo
hive.metastore
para adicionar o comentário da tabela.Se o senhor usar a seguinte sintaxe no comentário da tabela, as consultas do Notebook e do editor de consultas SQL que fazem referência à tabela obsoleta Hive exibirão o nome da tabela obsoleta usando o texto riscado, exibirão o comentário como um aviso e fornecerão um link de correção rápida para o Databricks Assistant, que pode atualizar seu código para fazer referência à nova tabela.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
Consulte Adicionar comentários para indicar que uma tabela do Hive foi migrada.
Modifique suas cargas de trabalho para usar as novas tabelas.
Se o senhor adicionou um comentário à tabela Hive original, como o listado no passo anterior opcional, poderá usar o link Quick Fix e o Databricks Assistant para ajudá-lo a encontrar e modificar as cargas de trabalho.
Faça upgrade de uma única tabela Hive para uma tabela externa do Unity Catalog usando o assistente de upgrade
O senhor pode copiar uma única tabela do default Hive metastore para o metastore Unity Catalog usando o assistente de upgrade no Catalog Explorer
Para obter ajuda para decidir quando usar o assistente de upgrade, consulte Opções de migração do Hive para o Unity Catalog.
Requisitos
Requisitos de formato de dados:
Consulte Trabalhar com tabelas externas.
compute Requisitos:
Um recurso compute que suporta Unity Catalog. Consulte Antes de começar.
Requisitos de objetos e permissões do Unity Catalog:
Uma credencial de armazenamento para um IAM role que autoriza o Unity Catalog a acessar o caminho de localização da tabela.
Um local externo que faz referência à credencial de armazenamento que o senhor acabou de criar e ao caminho para os dados em seu site cloud tenant.
CREATE EXTERNAL TABLE
permissão nos locais externos das tabelas a serem atualizadas.
Processo de atualização
Para atualizar uma tabela externa:
Clique Catálogo na barra lateral para abrir o Catalog Explorer.
Selecione o banco de dados e a tabela que você deseja atualizar.
Clique em Upgrade no canto superior direito dos detalhes da tabela view.
Selecione a tabela a ser atualizada e clique em Next.
Selecione seu catálogo de destino, esquema (banco de dados) e proprietário.
Os usuários poderão acessar a tabela recém-criada no contexto de seus privilégios no catálogo e no esquema.
Os proprietários da tabela têm todos os privilégios na tabela, incluindo
SELECT
eMODIFY
. Se você não selecionar um proprietário, a tabela gerenciada será criada com você como proprietário. Databricks geralmente recomenda que você conceda propriedade de tabela a grupos. Para saber mais sobre a propriedade do objeto no Unity Catalog, consulte Gerenciar a propriedade do objeto Unity Catalog .Clique em Upgrade no canto superior direito dos detalhes da tabela view.
Selecione a tabela a ser atualizada e clique em Next.
Os metadados da tabela agora são copiados para o Unity Catalog e uma nova tabela foi criada. Agora você pode usar a tab Permissões para definir o controle de acesso refinado.
Use o site Permissions tab para definir o controle de acesso refinado.
(Opcional) Adicione um comentário à tabela Hive que indique aos usuários a nova tabela do Unity Catalog.
Retorne à tabela original no catálogo
hive.metastore
para adicionar o comentário da tabela.Se o senhor usar a seguinte sintaxe no comentário da tabela, as consultas do Notebook e do editor de consultas SQL que fazem referência à tabela obsoleta Hive exibirão o nome da tabela obsoleta usando o texto riscado, exibirão o comentário como um aviso e fornecerão um link de correção rápida para o Databricks Assistant, que pode atualizar seu código para fazer referência à nova tabela.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
Consulte Adicionar comentários para indicar que uma tabela do Hive foi migrada.
Modifique as cargas de trabalho existentes para usar a nova tabela.
Se o senhor adicionou um comentário à tabela Hive original, como o listado no passo anterior opcional, poderá usar o link Quick Fix e o Databricks Assistant para ajudá-lo a encontrar e modificar as cargas de trabalho.
Observação
Se o senhor não precisar mais da tabela antiga, pode retirá-la do site Hive metastore. A eliminação de uma tabela externa não modifica os arquivos de dados em seu site cloud tenant.
Atualizar uma tabela Hive para uma tabela externa do Unity Catalog usando SYNC
O senhor pode usar o comando SYNC
SQL para copiar tabelas externas em seu Hive metastore para tabelas externas em Unity Catalog. O senhor pode sincronizar tabelas individuais ou esquemas inteiros.
O senhor também pode usar SYNC
para copiar Hive gerenciar tabelas que estão armazenadas fora do armazenamento Databricks workspace (às vezes chamado de DBFS root) para tabelas externas em Unity Catalog. O senhor não pode usá-lo para copiar Hive gerenciar tabelas armazenadas no armazenamento workspace. Para copiar essas tabelas, use CREATE TABLE CLONE.
O comando SYNC
executa uma operação de gravação em cada tabela de origem que atualiza para adicionar propriedades de tabela adicionais para manutenção, incluindo um registro da tabela externa de destino Unity Catalog.
SYNC
também pode ser usado para atualizar as tabelas existentes no site Unity Catalog quando as tabelas de origem no site Hive metastore forem alteradas. Isso o torna uma boa ferramenta para fazer a transição para o Unity Catalog gradualmente.
Para obter detalhes, consulte SYNC. Para obter ajuda para decidir quando usar o assistente de upgrade, consulte Opções de migração do Hive para o Unity Catalog.
Requisitos
Requisitos de formato de dados:
Consulte Trabalhar com tabelas externas.
compute Requisitos:
Um recurso compute que suporta Unity Catalog. Consulte Antes de começar.
Requisitos de objetos e permissões do Unity Catalog:
Uma credencial de armazenamento para um IAM role que autoriza o Unity Catalog a acessar o caminho de localização das tabelas.
Um local externo que faz referência à credencial de armazenamento que o senhor acabou de criar e ao caminho para os dados em seu site cloud tenant.
CREATE EXTERNAL TABLE
permissão nos locais externos das tabelas a serem atualizadas.
Requisitos de acesso à tabela Hive:
Se o seu compute usa o modo de acesso compartilhado, o senhor precisa de acesso às tabelas no Hive metastore, concedido usando o controle de acesso legado da tabela. Consulte Antes de começar.
Processo de atualização
Para atualizar tabelas em seu site Hive metastore para Unity Catalog tabelas externas usando SYNC
:
Em um site Notebook ou no editor de consultas SQL, execute uma das seguintes ações:
Sincronizar uma tabela Hive externa:
SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> FROM hive_metastore.<source-schema>.<source-table> SET OWNER <principal>;
Sincronizar um esquema Hive externo e todas as suas tabelas:
SYNC SCHEMA <uc-catalog>.<new-schema> FROM hive_metastore.<source-schema> SET OWNER <principal>;
Sincronizar uma tabela gerenciar Hive que está armazenada fora do armazenamento Databricks workspace :
SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> AS EXTERNAL FROM hive_metastore.<source-schema>.<source-table> SET OWNER <principal>;
Sincronizar um esquema que contenha tabelas gerenciar Hive que estejam armazenadas fora do armazenamento Databricks workspace :
SYNC SCHEMA <uc-catalog>.<new-schema> AS EXTERNAL FROM hive_metastore.<source-schema> SET OWNER <principal>;
Conceda aos usuários ou grupos no nível accountacesso à nova tabela. Consulte gerenciar privilégios no Unity Catalog.
(Opcional) Adicione um comentário à tabela original do Hive que indique aos usuários a nova tabela do Unity Catalog.
Retorne à tabela original no catálogo
hive.metastore
para adicionar o comentário da tabela. Para saber como adicionar comentários à tabela usando o Catalog Explorer, consulte Adicionar comentários aos dados e IA ativo. Para saber como adicionar comentários à tabela usando os comandos SQL em um Notebook ou no editor de consultas SQL, consulte COMMENT ON.Se o senhor usar a seguinte sintaxe no comentário da tabela, as consultas do Notebook e do editor de consultas SQL que fazem referência à tabela obsoleta Hive exibirão o nome da tabela obsoleta usando o texto riscado, exibirão o comentário como um aviso e fornecerão um link de correção rápida para o Databricks Assistant, que pode atualizar seu código para fazer referência à nova tabela.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
Consulte Adicionar comentários para indicar que uma tabela do Hive foi migrada.
Após a migração da tabela, os usuários devem atualizar suas query e cargas de trabalho existentes para usar a nova tabela.
Se o senhor adicionou um comentário à tabela Hive original, como o listado no passo anterior opcional, poderá usar o link Quick Fix e o Databricks Assistant para ajudá-lo a encontrar e modificar as cargas de trabalho.
Antes de descartar a tabela antiga, teste as dependências revogando o acesso a ela e executando novamente query e as cargas de trabalho relacionadas.
Não abandone a tabela antiga se o senhor ainda estiver contando com os comentários de depreciação para ajudá-lo a encontrar e atualizar o código existente que faz referência à tabela antiga. Da mesma forma, não exclua a tabela antiga se ela tiver sido alterada desde a sincronização original:
SYNC
pode ser usado para atualizar tabelas existentes do Unity Catalog com alterações de tabelas de origem do Hive.
Atualize uma tabela gerenciar Hive para uma tabela gerenciar Unity Catalog usando CLONE
Use CREATE TABLE CLONE
para atualizar as tabelas gerenciar Delta em seu Hive metastore para gerenciar as tabelas em Unity Catalog. Você pode clonar tabelas individuais. O senhor deve usar clones profundos ao clonar tabelas do site legado Hive metastore para Unity Catalog.
Para obter ajuda para decidir quando usar CLONE
, consulte Opções de migração do Hive para o Unity Catalog. Para obter mais informações sobre CLONE
, consulte Clone a table (Clonar uma tabela) em Databricks.
Requisitos
Requisitos de formato de dados:
gerenciar Hive tabelas no formato Delta.
compute Requisitos:
Um recurso compute que suporta Unity Catalog. Consulte Antes de começar.
Requisitos de permissão:
Os privilégios
USE CATALOG
eUSE SCHEMA
no catálogo e no esquema aos quais o senhor adiciona a tabela, juntamente comCREATE TABLE
no esquema, ou o senhor deve ser o proprietário do catálogo ou do esquema. Consulte Privilégios e objetos protegíveis do Unity Catalog.Se o seu compute usa o modo de acesso compartilhado, o senhor precisa de acesso às tabelas no Hive metastore, concedido usando o controle de acesso legado da tabela. Consulte Antes de começar.
Processo de atualização
Para atualizar as tabelas gerenciar em seu site Hive metastore para tabelas gerenciar em Unity Catalog:
Em um site Notebook ou no editor de consultas SQL, execute uma das seguintes ações:
Clone profundo de uma mesa gerenciadora no site Hive metastore:
CREATE OR REPLACE TABLE <uc-catalog>.<uc-schema>.<new-table> DEEP CLONE hive_metastore.<source-schema>.<source-table>;
Para obter informações sobre parâmetros adicionais, incluindo propriedades da tabela, consulte CREATE TABLE CLONE.
Conceda aos usuários ou grupos no nível accountacesso à nova tabela. Consulte gerenciar privilégios no Unity Catalog.
(Opcional) Adicione um comentário à tabela original do Hive que indique aos usuários a nova tabela do Unity Catalog.
Retorne à tabela original no catálogo
hive.metastore
para adicionar o comentário da tabela. Para saber como adicionar comentários à tabela usando o Catalog Explorer, consulte Adicionar comentários aos dados e IA ativo. Para saber como adicionar comentários à tabela usando os comandos SQL em um Notebook ou no editor de consultas SQL, consulte COMMENT ON.Se o senhor usar a seguinte sintaxe no comentário da tabela, as consultas do Notebook e do editor de consultas SQL que fazem referência à tabela obsoleta Hive exibirão o nome da tabela obsoleta usando o texto riscado, exibirão o comentário como um aviso e fornecerão um link de correção rápida para o Databricks Assistant, que pode atualizar seu código para fazer referência à nova tabela.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
Consulte Adicionar comentários para indicar que uma tabela do Hive foi migrada.
Após a migração da tabela, os usuários devem atualizar suas query e cargas de trabalho existentes para usar a nova tabela.
Se o senhor adicionou um comentário à tabela Hive original, como o listado no passo anterior opcional, poderá usar o link Quick Fix e o Databricks Assistant para ajudá-lo a encontrar e modificar as cargas de trabalho.
Antes de descartar a tabela antiga, teste as dependências revogando o acesso a ela e executando novamente query e as cargas de trabalho relacionadas.
Não abandone a tabela antiga se o senhor ainda estiver contando com os comentários de depreciação para ajudá-lo a encontrar e atualizar o código existente que faz referência à tabela antiga. Da mesma forma, não descarte a tabela antiga se o senhor tiver feito um clone superficial. Os clones rasos fazem referência aos dados da tabela de origem do Hive.
Atualize uma tabela Hive para uma tabela gerenciar Unity Catalog usando CREATE TABLE AS SELECT
Se o senhor não puder usar ou preferir não usar CREATE TABLE CLONE
para migrar uma tabela em Hive metastore para uma tabela gerenciadora em Unity Catalog, poderá criar uma nova tabela gerenciadora em Unity Catalog consultando a tabela Hive usando CREATE TABLE AS SELECT
. Para obter informações sobre as diferenças entre CREATE TABLE CLONE
e CREATE TABLE AS SELECT
, consulte Hive para Unity Catalog opções de migração.
Requisitos
compute Requisitos:
Um recurso compute que suporta Unity Catalog. Consulte Antes de começar.
Requisitos de permissão:
Os privilégios
USE CATALOG
eUSE SCHEMA
no catálogo e no esquema aos quais o senhor adiciona a tabela, juntamente comCREATE TABLE
no esquema, ou o senhor deve ser o proprietário do catálogo ou do esquema. Consulte Privilégios e objetos protegíveis do Unity Catalog.Se o seu compute usa o modo de acesso compartilhado, o senhor precisa de acesso às tabelas no Hive metastore, concedido usando o controle de acesso legado da tabela. Consulte Antes de começar.
Processo de atualização
Para atualizar uma tabela em seu Hive metastore para uma tabela gerenciar em Unity Catalog usando CREATE TABLE AS SELECT
:
Crie uma nova tabela do Unity Catalog consultando a tabela existente. Substitua os valores de espaço reservado:
<uc-catalog>
: o catálogo Unity Catalog para a nova tabela.<uc-schema>
: o esquema Unity Catalog para a nova tabela.<new-table>
: um nome para a tabela Unity Catalog .<source-schema>
: O esquema da tabela Hive, comodefault
.<source-table>
: O nome da tabela Hive.
CREATE TABLE <uc-catalog>.<new-schema>.<new-table> AS SELECT * FROM hive_metastore.<source-schema>.<source-table>;
df = spark.table("hive_metastore.<source-schema>.<source-table>") df.write.saveAsTable( name = "<uc-catalog>.<uc-schema>.<new-table>" )
%r library(SparkR) df = tableToDF("hive_metastore.<source-schema>.<source-table>") saveAsTable( df = df, tableName = "<uc-catalog>.<uc-schema>.<new-table>" )
val df = spark.table("hive_metastore.<source-schema>.<source-table>") df.write.saveAsTable( tableName = "<uc-catalog>.<uc-schema>.<new-table>" )
Se você deseja migrar apenas algumas colunas ou linhas, modifique a instrução
SELECT
.Observação
O comando apresentado aqui cria uma tabela gerenciadora na qual os dados são copiados para um local de armazenamento gerenciador dedicado. Se, em vez disso, o senhor quiser criar uma tabela externa, na qual a tabela é registrada em Unity Catalog sem mover os dados no armazenamento cloud, consulte Atualizar uma única tabela Hive para uma tabela externa Unity Catalog usando o assistente de atualização. Consulte também Especificar um local de armazenamento gerenciar em Unity Catalog.
Conceda aos usuários ou grupos no nível accountacesso à nova tabela. Consulte gerenciar privilégios no Unity Catalog.
(Opcional) Adicione um comentário à tabela original do Hive que indique aos usuários a nova tabela do Unity Catalog.
Retorne à tabela original no catálogo
hive.metastore
para adicionar o comentário da tabela. Para saber como adicionar comentários à tabela usando o Catalog Explorer, consulte Adicionar comentários aos dados e IA ativo. Para saber como adicionar comentários à tabela usando os comandos SQL em um Notebook ou no editor de consultas SQL, consulte COMMENT ON.Se o senhor usar a seguinte sintaxe no comentário da tabela, as consultas do Notebook e do editor de consultas SQL que fazem referência à tabela obsoleta Hive exibirão o nome da tabela obsoleta usando o texto riscado, exibirão o comentário como um aviso e fornecerão um link de correção rápida para o Databricks Assistant, que pode atualizar seu código para fazer referência à nova tabela.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
Consulte Adicionar comentários para indicar que uma tabela do Hive foi migrada.
Após a migração da tabela, os usuários devem atualizar suas query e cargas de trabalho existentes para usar a nova tabela.
Se o senhor adicionou um comentário à tabela Hive original, como o listado no passo anterior opcional, poderá usar o link Quick Fix e o Databricks Assistant para ajudá-lo a encontrar e modificar as cargas de trabalho.
Antes de descartar a tabela antiga, teste as dependências revogando o acesso a ela e executando novamente query e as cargas de trabalho relacionadas.
Não abandone a tabela antiga se o senhor ainda estiver contando com os comentários de depreciação para ajudá-lo a encontrar e atualizar o código existente que faz referência à tabela antiga.
Atualize uma exibição para Unity Catalog
Depois de atualizar todas as tabelas referenciadas de um viewpara o mesmo metastore Unity Catalog, o senhor pode criar um novo view que faça referência às novas tabelas.
Adicionar comentários para indicar que uma tabela do Hive foi migrada
Quando o senhor adiciona um comentário à tabela obsoleta Hive que direciona os usuários para a nova tabela Unity Catalog, as consultas do Notebook e do editor de consultas SQL que fazem referência à tabela obsoleta Hive exibirão o nome da tabela obsoleta usando texto riscado, exibirão o comentário como um aviso e fornecerão um link de correção rápida para o Databricks Assistant, que pode atualizar seu código para fazer referência à nova tabela.
Seu comentário deve usar o seguinte formato:
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
Para saber como adicionar comentários à tabela usando o Catalog Explorer, consulte Adicionar comentários aos dados e IA ativo. Para saber como adicionar comentários à tabela usando os comandos SQL em um Notebook ou no editor de consultas SQL, consulte COMMENT ON.
Use o Databricks Assistant para atualizar uma referência de tabela obsoleta
Se vir um texto riscado em um nome de tabela em uma célula ou instrução do site Notebook no editor de consultas SQL, passe o mouse sobre o nome da tabela para exibir um aviso de advertência. Se o aviso descrever a tabela como obsoleta e exibir o novo nome da tabela, clique em Quick Fix (Correção rápida) e, em seguida, em Fix Deprecation (Correção de obsoleta). O Databricks Assistant é aberto, oferecendo a substituição do nome da tabela obsoleta pelo novo nome da tabela do Unity Catalog. Siga as instruções para concluir a tarefa.
Consulte também Use Databricks Assistant.