Hive tablolarını ve görünümlerini Unity Kataloğu'na yükseltme

Bu makalede, mevcut çalışma alanı yerel Hive meta veri deposunda kayıtlı olan tabloların ve görünümlerin Unity Kataloğu'na yükseltme işlemi açıklanmaktadır.

Note

Bu makalede açıklanan tablo geçiş işlemlerine alternatif olarak, Unity Kataloğu'nda Hive meta veri deponuzu yansıtan bir katalog oluşturmak için Hive meta veri deposu federasyonunu kullanabilirsiniz. Bkz. Hive meta veri deposu federasyonu: Unity Kataloğu'nuHive meta veri deposunda kayıtlı tabloları yönetmek için etkinleştirme.

Unity Kataloğu'nda Bir Hive tablosunu yönetilen tabloya veya dış tabloya yükseltebilirsiniz.

  • Yönetilen tablolar , Unity Kataloğu'nda tablo oluşturmanın tercih edilen yoludur. Unity Kataloğu yaşam döngüsünü, dosya düzenini ve depolama alanını tamamen yönetir. Unity Kataloğu ayrıca performanslarını otomatik olarak iyileştirir. Yönetilen tablolar her zaman Delta tablo biçimini kullanır.

    Yönetilen tablolar, Unity Kataloğu için ayırdığınız bir yönetilen depolama konumunda bulunur. Bu depolama gereksinimi nedeniyle, var olan Hive tablolarını Unity Kataloğu'na yönetilen tablolar olarak kopyalamak istiyorsanız CLONE veya CREATE TABLE AS SELECT (CTAS) kullanmanız gerekir.

  • Dış tablolar , veri yaşam döngüsü, dosya düzeni ve depolama konumu Unity Kataloğu tarafından yönetilmeyen tablolardır. Dış tablolar için birden çok veri biçimi desteklenir.

    Genellikle dış tabloları yalnızca Databricks dışı işlem kullanarak (Databricks kümelerini veya Databricks SQL ambarlarını kullanmamak) kullanarak verilere doğrudan erişime ihtiyacınız olduğunda kullanırsınız. Dış tablolar, geçiş senaryolarında da kullanışlıdır, çünkü mevcut verileri Unity Kataloğu'na bu verileri kopyalamaya gerek kalmadan hızla kaydedebilirsiniz. Bu, dış tablolardaki verilerin ayrılmış yönetilen depolama alanında bulunması gerekmediği gerçeği sayesindedir.

Unity Kataloğu'ndaki yönetilen ve dış tablolar hakkında daha fazla bilgi için bkz. Azure Databricks tabloları.

Hive'den Unity Kataloğu'na geçiş seçenekleri

Hive tablolarını Unity Kataloğu'na geçirmeye hazır olduğunuzda, kullanım örneğine bağlı olarak çeşitli seçenekleriniz vardır:

Geçiş aracı Description Hive tablosu gereksinimleri Unity Kataloğu tablosu oluşturuldu Neden kullanmalıyım?
UCX Çalışma alanınızın Unity Kataloğu geçişi için hazır olup olmadığını değerlendiren ve kimlikleri, izinleri, depolama konumlarını ve tabloları Unity Kataloğu'na geçiren iş akışları gerçekleştiren kapsamlı bir komut satırı yardımcı programları ve diğer araçlar kümesi. UCX, Databrickslabs/ucx adresinde GitHub'da kullanılabilir. Yönetilen veya harici Hive tabloları Yönetimli veya harici Hive tablolarını Unity Kataloğu'na yükseltmenin ötesine geçen kapsamlı bir çalışma alanı yükseltme planlama aracı istiyorsunuz. Hive meta veri deposunda büyük miktarda veri içeren çalışma alanlarını yükseltmek istiyorsunuz. Skriptleri rahatça çalıştırabilme konusunda kendinizi rahat hissedersiniz. Hive tablolarının Unity Kataloğu yönetilen tablolarına toplu yükseltmesini gerçekleştirmek istiyorsanız, tek seçeneğiniz budur. Tüm Databricks Labs projeleri gibi UCX de genel bir GitHub deposudur ve databricks tarafından doğrudan desteklenmez.
Unity Kataloğu yükseltme sihirbazı Tüm şemaları (veritabanları) ve birden çok yönetilen ve dış tabloyu Hive meta veri deponuzdan Unity Kataloğu meta deposuna dış tablolar olarak toplu olarak kopyalamanızı sağlayan bir Katalog Gezgini özelliği. Yükseltme sihirbazı, seçtiğiniz tablolarda SYNC komutunu gerçekleştirir ve özgün Hive tablolarını olduğu gibi bırakır. Kaynak Hive tablolarındaki değişiklikleri almak için düzenli yükseltmeleri zamanlama seçeneğiniz vardır. Yönetilen veya harici Hive tabloları Sadece harici Unity Kataloğu'nda Hive tablolarınızı hızla dış tablolara yükseltmek istiyorsunuz ve görsel bir arabirim tercih ediyorsunuz. Kaynak Hive tablosu değiştiğinde düzenli eşitlemeleri zamanlama özelliği, Unity Kataloğu'na geçiş sırasında "karma" Hive ve Unity Kataloğu çalışma alanını yönetmek için kullanışlı bir araç haline getirir.
SQL komut SYNC Dış tabloları ve yönetilen tabloları (eğer yönetilen tablolar, bazen DBFS kökü adı verilen Databricks çalışma alanı depolamasının dışında depolanıyorsa) Hive metastore'unuzdan Unity Catalog'daki dış tablolara kopyalamanıza olanak tanır. Tek tek tabloları veya tüm şemaları eşitleyebilirsiniz.
SYNC , Hive meta veri deposundaki yeni değişiklikleri almak ve Unity Kataloğu ile eşitlemek için bir zamanlamaya göre çalıştırılacak şekilde tasarlanmıştır.
Yönetilen veya harici Hive tabloları Sadece harici Hive tablolarınızı Unity Kataloğu'ndaki dış tablolara hızla yükseltmek istiyorsunuz ve görsel arabirim yerine SQL komutlarını kullanmayı tercih ediyorsunuz.
Kaynak Hive tablosu değiştiğinde mevcut Unity Kataloğu tablolarını güncelleştirmek için normal SYNC çalıştırmaların zamanlanması, Unity Kataloğu'na geçiş sırasında "karma" Hive ve Unity Kataloğu çalışma alanını yönetmek için kullanışlı bir araç haline getirir.
Databricks çalışma alanı depolama alanında bulunan yönetilen tabloları yükseltmek için SYNC kullanamadığınız için bu tablolar için CREATE TABLE CLONE kullanın.
SQL komut CREATE TABLE CLONE , Hive meta veri deponuzdaki yönetilen tabloları Unity Kataloğu'ndaki yönetilen tablolara yükseltmenizi sağlar. Tabloları tek tek kopyalayabilirsiniz.
Derin kopyalar, kaynak tablo verilerini ve meta verilerini klon hedefe kopyalar.
Delta biçiminde yönetilen Hive tabloları. Yalnızca yönetilen Unity Kataloğu veri idaresinin tüm avantajlarından yararlanmak için Hive yönetilen tablolarını Unity Kataloğu yönetilen tablolarına geçirmek istiyorsunuz ve Hive tablolarınız "Hive tablo gereksinimleri" hücresinde listelenen ölçütleri karşılıyor.
Hive tablolarınız "Hive tablosu gereksinimlerini" karşılamıyorsa, Hive tablosunu Unity Kataloğu yönetilen tablosuna yükseltmek için CREATE TABLE AS SELECT SQL komut kullanabilirsiniz. Ancak CLONE neredeyse her zaman tercih edilir. Kopyalamanın CREATE TABLE AS SELECT'dan daha basit bir söz dizimi vardır: Bölümleme, biçim, değişmezler, null atanabilirlik, akış, COPY INTO ve diğer meta verileri belirtmeniz gerekmez, çünkü bunlar kaynak tablodan alınır.

Bu makalede, UCX tabanlı yükseltme işlemi dışında tüm işlemlerin nasıl gerçekleştirildiği açıklanmaktadır. Databricks, çoğu çalışma alanı yükseltme senaryosu için UCX'i önerir. Ancak, daha basit kullanım örnekleri için burada açıklanan araçlardan birini veya daha fazlasını tercih edebilirsiniz.

Başlamadan önce

Bu bölümde, izinler ve işlem gereksinimleriyle birlikte, geçişin hazırlıklı olmanız gereken bazı etkileri açıklanmaktadır.

Etkiyi anlama

İş yüklerinizi yeni Unity Kataloğu tablolarını kullanacak şekilde değiştirdiğinizde bazı davranışları değiştirmeniz gerekebileceğini unutmayın:

  • Unity Kataloğu bölümleri Hive'dan farklı yönetir. Bölümleri doğrudan işleyen Hive komutları Unity Kataloğu tarafından yönetilen tablolarda desteklenmez.
  • Tablo geçmişi CREATE TABLE CLONE çalıştırdığınızda aktarılmaz. Unity Kataloğu'na kopyaladığınız Hive meta veri deposundaki tüm tablolar yeni tablolar olarak değerlendirilir. Delta Lake zaman yolculuğu veya geçiş öncesi geçmişi kullanan diğer işlemleri gerçekleştiremezsiniz.

Daha fazla bilgi için bkz. Unity Kataloğu ile birlikte eski Hive meta veri deposuyla çalışma.

Requirements

Geçişleri gerçekleştirmek için şunları yapmanız gerekir:

  • Unity Kataloğu meta veri deposuna ve en az bir Unity Kataloğu kataloğuna sahip bir çalışma alanı. Bkz. Unity Kataloğu'nu kullanmaya başlama.

  • Tabloları aktaracağınız Unity Kataloğu kataloglarındaki ayrıcalıklar. Bu ayrıcalık gereksinimleri, bu makalede ele alınan her yordamın başında numaralandırılır.

  • Unity Kataloğu dış tablolarına geçiş için: Unity Kataloğu'nda tanımlanan depolama kimlik bilgileri, dış konumlar ve dış konumdaki CREATE EXTERNAL TABLE ayrıcalık.

  • Aşağıdaki gereksinimlerin ikisini de karşılayan Azure Databricks işlem erişimi:

    • Unity Kataloğu'nu (standart veya ayrılmış erişim modunu kullanan SQL ambarları veya işlem kaynakları) destekler.
    • Hive meta veri deposundaki tablolara erişime izin verir.

    Standart erişim modunu kullanan işlem kaynakları varsayılan olarak eski tablo erişim denetimi için etkinleştirildiğinden, bu erişim modunu kullanırsanız, geçiş yaptığınız Hive meta deposunda tablo erişim denetimi ayrıcalıklarına sahip olmanız gerektiği anlamına gelir. Aşağıdaki SQL komutunu kullanarak kendinize erişim vekleyebilirsiniz:

    GRANT ALL PRIVILEGES ON catalog hive_metastore TO `<user>`
    

    Alternatif olarak, ayrılmış erişim modunda bir işlem kaynağı kullanabilirsiniz.

    Note

    Unity Kataloğu için hesaplama güncellemelerine dair tanıtımlar hakkında bilgi almak için bkz:

Hive meta veri deposundaki nesnelerde ayrıcalıkları yönetme hakkında daha fazla bilgi için bkz . Hive meta veri deposu ayrıcalıkları ve güvenliği sağlanabilir nesneler (eski). Unity Kataloğu meta veri deposundaki nesnelerde ayrıcalıkları yönetme hakkında daha fazla bilgi için bkz . Unity Kataloğu'nda ayrıcalıkları yönetme.

Hive meta veri deposu tarafından yönetilen tabloları tanımlama

Bir tablonun Unity Kataloğu'nda kayıtlı olup olmadığını belirlemek için katalog adını denetleyin. Katalogdaki hive_metastore tablolar çalışma alanı yerel Hive meta veri deposuna kaydedilir. Listelenen diğer tüm kataloglar Unity Kataloğu tarafından yönetilir.

Katalog Gezgini'ni kullanarak katalogdaki hive_metastore tabloları görüntülemek için:

  1. Veri simgesine tıklayın. Kenar çubuğunda katalog.
  2. Katalog bölmesinde kataloğa göz atın hive_metastore ve şema düğümlerini genişletin.

Katalog bölmesindeki filtre alanını kullanarak belirli bir tabloyu da arayabilirsiniz.

Yükseltme sihirbazını kullanarak Bir şemayı veya tabloları Hive meta veri deposundan Unity Kataloğu dış tablolarına yükseltme

Katalog Gezgini yükseltme sihirbazını kullanarak Azure Databricks varsayılan Hive meta veri deponuzdan Unity Kataloğu meta deposuna tam şemaları (veritabanları) ve birden çok dış veya yönetilen tabloyu kopyalayabilirsiniz. Yükseltilen tablolar Unity Kataloğu'ndaki dış tablolar olacaktır.

Yükseltme sihirbazının ne zaman kullanılacağına karar verme konusunda yardım için bkz Hive'ı Unity Kataloğu'na taşıma seçenekleri.

Requirements

Veri biçimi gereksinimleri:

İşlem gereksinimleri:

  • Unity Kataloğu'nu destekleyen bir işlem kaynağı. Başlamadan önce bkz.

Unity Kataloğu nesnesi ve izin gereksinimleri:

Hive tablosu erişim gereksinimleri:

  • Standart erişim modunu kullanıyorsanız, Hive meta veri deposundaki tablolara erişmeniz gerekir ve bu erişim, eski tablo erişim kontrolü kullanılarak sağlanır. Başlamadan önce bkz.

Yükseltme işlemi

  1. Veri simgesine tıklayın. Katalog Gezgini'ni açmak için kenar çubuğunda katalog.

  2. hive_metastore Kataloğunuz olarak seçin ve yükseltmek istediğiniz şemayı (veritabanını) seçin.

    Veritabanı seçin

  3. Şema ayrıntı görünümünün sağ üst kısmındaki Yükselt'e tıklayın.

  4. Yükseltmek istediğiniz tüm tabloları seçin ve İleri'ye tıklayın.

    Yükseltme sihirbazı kullanılarak yalnızca Unity Kataloğu tarafından desteklenen biçimlerdeki dış tablolar yükseltilebilir. Bkz Dış Tablolarla Çalışma.

  5. Her tablo için hedef kataloğu, şemayı (veritabanı) ve sahibi ayarlayın.

    Kullanıcılar, katalog ve şemadaki ayrıcalıkları bağlamında yeni oluşturulan tabloya erişebilir.

    Tablo sahipleri, SELECT ve MODIFY dahil olmak üzere tabloda tüm ayrıcalıklara sahiptir. Sahip seçmezseniz, yönetilen tablolar sizin sahipliğinizde oluşturulur. Databricks genellikle gruplara tablo sahipliği vermenizi önerir. Unity Kataloğu'nda nesne sahipliği hakkında daha fazla bilgi edinmek için bkz . Unity Kataloğu nesne sahipliğini yönetme.

    Aynı kataloğu ve şemayı birden çok tabloya atamak için tabloları seçin ve Hedef ayarla düğmesine tıklayın.

    Aynı sahibi birden çok tabloya atamak için tabloları seçin ve Sahibi ayarla düğmesine tıklayın.

  6. Tablo yapılandırmalarını gözden geçirin. Bunları değiştirmek için Önceki düğmesine tıklayın.

  7. Yükseltmeyi hemen çalıştırmak için Yükseltmeyi çalıştır'a veya yükseltme için not defteri oluştur'a tıklayın.

    Yükseltme için bir not defteri oluşturursanız, not defterinizi adlandırın ve kaydetmek için bir yol seçin. Ardından not defterini çalıştırın.

    Yükseltme tamamlandığında, her tablonun meta verileri Hive meta veri deposundan Unity Kataloğu'na kopyalanır. Bu tablolar yükseltme sihirbazında yükseltildi olarak işaretlenir.

  8. Her yeni tablonun İzinler sekmesini kullanarak ayrıntılı erişim denetimi tanımlayın.

  9. (İsteğe bağlı) Yükseltilen her Hive tablosuna, kullanıcıları yeni Unity Kataloğu tablosuna işaret eden açıklamalar ekleyin.

    Tablo açıklamasını eklemek için katalogdaki hive.metastore özgün tabloya dönün.

    Tablo açıklamasında aşağıdaki söz dizimini kullanırsanız, kullanım dışı bırakılmış Hive tablosuna başvuran not defterleri ve SQL sorgu düzenleyicisi sorguları, üstü çizili metin kullanarak kullanım dışı bırakılan tablo adını görüntüler, açıklamayı uyarı olarak görüntüler ve kodunuzu yeni tabloya başvuracak şekilde güncelleştirebilen Genie Code'a hızlı düzeltme bağlantısı sağlar.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Bkz Hive tablosunun geçirildiğini belirtmek için açıklama ekleme.

  10. yeni tabloları kullanmak için iş yüklerinizi değiştirin.

    özgün Hive tablosuna isteğe bağlı önceki adımda listelenen gibi bir açıklama eklediyseniz, iş yüklerini bulmanıza ve değiştirmenize yardımcı olması için Genie Code'u kullanabilirsiniz. Eski tablo başvurusunu güncellemek için Genie Code'u kullanmayı görün.

    Note

    Eski tablolara artık ihtiyacınız yoksa, bunları Hive meta veri deposundan bırakabilirsiniz. Dış tablo bırakıldığında, bulut kiracınızdaki veri dosyaları değiştirilmez.

SYNC kullanarak Hive tablosunu Unity Kataloğu dış tablosuna yükseltme

Hive meta veri deponuzdaki SYNC dış tabloları Unity Kataloğu'ndaki dış tablolara kopyalamak için SQL komutunu kullanabilirsiniz. Tek tek tabloları veya tüm şemaları eşitleyebilirsiniz.

Databricks çalışma alanı depolama alanı dışında depolanan Hive yönetilen tablolarını (bazen DBFS kökü olarak da adlandırılır) Unity Kataloğu'ndaki dış tablolara kopyalamak için de kullanabilirsiniz SYNC . Çalışma alanı depolama alanında depolanan Hive yönetilen tablolarını kopyalamak için bunu kullanamazsınız. Bu tabloları kopyalamak için bunun yerine CREATE TABLE CLONE kullanın.

Komut, yükseltildiği her kaynak tabloya, muhasebe için ek tablo özellikleri ekleyerek, hedef Unity Catalog dış tablosunun kaydını içeren bir yazma işlemi gerçekleştirir.

SYNC , Hive meta veri deposundaki kaynak tablolar değiştirildiğinde mevcut Unity Kataloğu tablolarını güncelleştirmek için de kullanılabilir. Bu, Unity Kataloğu'na aşamalı olarak geçiş yapmak için iyi bir araç haline getirir.

Ayrıntılar için bkz. SYNC. Yükseltme sihirbazının ne zaman kullanılacağına karar verme konusunda yardım için bkz Hive'ı Unity Kataloğu'na taşıma seçenekleri.

Requirements

Veri biçimi gereksinimleri:

İşlem gereksinimleri:

  • Unity Kataloğu'nu destekleyen bir işlem kaynağı. Başlamadan önce bkz.

Unity Kataloğu nesnesi ve izin gereksinimleri:

Hive tablosu erişim gereksinimleri:

  • Standart erişim modunu kullanıyorsanız, Hive meta veri deposundaki tablolara erişmeniz gerekir ve bu erişim, eski tablo erişim kontrolü kullanılarak sağlanır. Başlamadan önce bkz.

Yükseltme işlemi

Hive meta veri deposunuzdaki tabloları SYNC kullanarak Unity Kataloğu harici tablolara yükseltmek için:

  1. Not defterinde veya SQL sorgu düzenleyicisinde aşağıdakilerden birini çalıştırın:

    Dış Hive tablosunu senkronize etme

    SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> FROM hive_metastore.<source-schema>.<source-table>
    SET OWNER <principal>;
    

    Harici Hive şemasını ve tüm tablolarını senkronize edin

    SYNC SCHEMA <uc-catalog>.<new-schema> FROM hive_metastore.<source-schema>
    SET OWNER <principal>;
    

    Databricks çalışma alanı depolama alanının dışında depolanan yönetilen hive tablosunu eşitleyin:

    SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> AS EXTERNAL FROM hive_metastore.<source-schema>.<source-table>
    SET OWNER <principal>;
    

    Databricks çalışma alanı depolama alanının dışında depolanan yönetilen Hive tablolarını içeren bir şemayı eşitleyin:

    SYNC SCHEMA <uc-catalog>.<new-schema> AS EXTERNAL FROM hive_metastore.<source-schema>
    SET OWNER <principal>;
    
  2. Hesap düzeyindeki kullanıcılara veya gruplara yeni tabloya erişim izni verin. Bkz. Unity Kataloğu'nda Ayrıcalıkları Yönetme.

  3. (İsteğe bağlı) Özgün Hive tablosuna, kullanıcıları yeni Unity Kataloğu tablosuna işaret eden bir açıklama ekleyin.

    Tablo açıklamasını eklemek için katalogdaki hive.metastore özgün tabloya dönün. Katalog Gezgini'ne kullanarak tablo açıklamaları eklemeyi öğrenmek için bkz . Verilere ve yapay zeka varlıklarına açıklama ekleme. Not defterinde veya SQL sorgu düzenleyicisinde SQL deyimlerini kullanarak tablo açıklamaları eklemeyi öğrenmek için bkz. COMMENT ON.

    Tablo açıklamasında aşağıdaki söz dizimini kullanırsanız, kullanım dışı bırakılmış Hive tablosuna başvuran not defterleri ve SQL sorgu düzenleyicisi sorguları, üstü çizili metin kullanarak kullanım dışı bırakılan tablo adını görüntüler, açıklamayı uyarı olarak görüntüler ve kodunuzu yeni tabloya başvuracak şekilde güncelleştirebilen Genie Code'a hızlı düzeltme bağlantısı sağlar.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Bkz Hive tablosunun geçirildiğini belirtmek için açıklama ekleme.

  4. Tablo geçirildikten sonra, kullanıcıların mevcut sorgularını ve iş yüklerini yeni tabloyu kullanacak şekilde güncelleştirmeleri gerekir.

    özgün Hive tablosuna isteğe bağlı önceki adımda listelenen gibi bir açıklama eklediyseniz, iş yüklerini bulmanıza ve değiştirmenize yardımcı olması için Genie Code'u kullanabilirsiniz. Eski tablo başvurusunu güncellemek için Genie Code'u kullanmayı görün.

  5. Eski tabloyu bırakmadan önce, bu tabloya erişimi iptal edip ilgili sorguları ve iş yüklerini yeniden çalıştırarak bağımlılıkları test edin.

    Eski tabloya başvuran mevcut kodu bulmanıza ve güncelleştirmenize yardımcı olmak için kullanımdan kaldırma açıklamalarını kullanmaya devam ediyorsanız eski tabloyu bırakmayın. Benzer şekilde, özgün eşitlemenizden bu yana bu tablo değiştiyse eski tabloyu bırakmayın: SYNC mevcut Unity Kataloğu tablolarını kaynak Hive tablolarındaki değişikliklerle güncelleştirmek için kullanılabilir.

CLONE kullanarak Hive yönetilen tablosunu Unity Kataloğu yönetilen tablosuna yükseltme

Hive meta veri deponuzdaki yönetilen Delta tablolarını Unity Kataloğu'ndaki yönetilen tablolara yükseltmek için kullanın CREATE TABLE CLONE . Tabloları tek tek kopyalayabilirsiniz. Tabloları eski Hive meta veri deposundan Unity Kataloğu'na klonlarken derin klonlamalar kullanmanız gerekir.

Yardım almak için, ne zaman CLONE kullanmanız gerektiğine karar vermekte, Hive'den Unity Kataloğu'na geçiş seçeneklerine bakın. Azure Databricks'te tablo kopyalama hakkında daha fazla bilgi için , başlıklı makaleye bakın.

Requirements

Veri biçimi gereksinimleri:

  • Delta biçiminde yönetilen Hive tabloları.

İşlem gereksinimleri:

  • Unity Kataloğu'nu destekleyen bir işlem kaynağı. Başlamadan önce bkz.

İzin gereksinimleri:

  • Tabloyu eklediğiniz katalog ve şemadaki USE CATALOG ve USE SCHEMA ayrıcalıkları ile şemadaki CREATE TABLE ayrıcalıkları, ya da kataloğun veya şemanın sahibi olmalısınız. Bkz Unity Kataloğu ayrıcalıkları referansı.
  • Standart erişim modunu kullanıyorsanız, Hive meta veri deposundaki tablolara erişmeniz gerekir ve bu erişim, eski tablo erişim kontrolü kullanılarak sağlanır. Başlamadan önce bkz.

Yükseltme işlemi

Hive meta veri deponuzdaki yönetilen tabloları Unity Kataloğu'ndaki yönetilen tablolara yükseltmek için:

  1. Not defterinde veya SQL sorgu düzenleyicisinde aşağıdakilerden birini çalıştırın:

    Hive meta veri deposunda yönetilen bir tabloyu derin klonlama:

    CREATE OR REPLACE TABLE <uc-catalog>.<uc-schema>.<new-table>
    DEEP CLONE hive_metastore.<source-schema>.<source-table>;
    

    Tablo özellikleri de dahil olmak üzere ek parametreler hakkında bilgi için bkz. CREATE TABLE CLONE.

  2. Hesap düzeyindeki kullanıcılara veya gruplara yeni tabloya erişim izni verin. Bkz. Unity Kataloğu'nda Ayrıcalıkları Yönetme.

  3. (İsteğe bağlı) Özgün Hive tablosuna, kullanıcıları yeni Unity Kataloğu tablosuna işaret eden bir açıklama ekleyin.

    Tablo açıklamasını eklemek için katalogdaki hive.metastore özgün tabloya dönün. Katalog Gezgini'ne kullanarak tablo açıklamaları eklemeyi öğrenmek için bkz . Verilere ve yapay zeka varlıklarına açıklama ekleme. Not defterinde veya SQL sorgu düzenleyicisinde SQL deyimlerini kullanarak tablo açıklamaları eklemeyi öğrenmek için bkz. COMMENT ON.

    Tablo açıklamasında aşağıdaki söz dizimini kullanırsanız, kullanım dışı bırakılmış Hive tablosuna başvuran not defterleri ve SQL sorgu düzenleyicisi sorguları, üstü çizili metin kullanarak kullanım dışı bırakılan tablo adını görüntüler, açıklamayı uyarı olarak görüntüler ve kodunuzu yeni tabloya başvuracak şekilde güncelleştirebilen Genie Code'a hızlı düzeltme bağlantısı sağlar.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Bkz Hive tablosunun geçirildiğini belirtmek için açıklama ekleme.

  4. Tablo geçirildikten sonra, kullanıcıların mevcut sorgularını ve iş yüklerini yeni tabloyu kullanacak şekilde güncelleştirmeleri gerekir.

    özgün Hive tablosuna isteğe bağlı önceki adımda listelenen gibi bir açıklama eklediyseniz, iş yüklerini bulmanıza ve değiştirmenize yardımcı olması için Genie Code'u kullanabilirsiniz. Eski tablo başvurusunu güncellemek için Genie Code'u kullanmayı görün.

  5. Eski tabloyu bırakmadan önce, bu tabloya erişimi iptal edip ilgili sorguları ve iş yüklerini yeniden çalıştırarak bağımlılıkları test edin.

    Eski tabloya başvuran mevcut kodu bulmanıza ve güncelleştirmenize yardımcı olmak için kullanımdan kaldırma açıklamalarını kullanmaya devam ediyorsanız eski tabloyu bırakmayın. Benzer şekilde, sığ bir kopya yaptıysanız eski tabloyu bırakmayın. Basit klonlar kaynak Hive tablosundaki verilere başvurur.

AS CREATE TABLESELECT kullanarak Hive tablosunu Unity Kataloğu yönetilen tablosuna yükseltme

Hive metastore'nuzdaki bir tabloyu Unity Catalog'daki yönetilen bir tabloya geçirmek için CREATE TABLE CLONE kullanamaz veya kullanmayı tercih etmezseniz, CREATE TABLE AS SELECT kullanarak Hive tablosunu sorgulayıp Unity Catalog'da yeni bir yönetilen tablo oluşturabilirsiniz. CREATE TABLE CLONE ile CREATE TABLE AS SELECT arasındaki farklar hakkında bilgi için Hive to Unity Catalog geçiş seçeneklerine bakınız.

yönetilen bir tabloyu CREATE TABLE AS SELECT kullanarak yükseltme demosu için, bkz. SYNC Olmadan HMS'de Yönetilen Tablolar.

Requirements

İşlem gereksinimleri:

  • Unity Kataloğu'nu destekleyen bir işlem kaynağı. Başlamadan önce bkz.

İzin gereksinimleri:

  • Tabloyu eklediğiniz katalog ve şemadaki USE CATALOG ve USE SCHEMA ayrıcalıkları ile şemadaki CREATE TABLE ayrıcalıkları, ya da kataloğun veya şemanın sahibi olmalısınız. Bkz Unity Kataloğu ayrıcalıkları referansı.
  • Standart erişim modunu kullanıyorsanız, Hive meta veri deposundaki tablolara erişmeniz gerekir ve bu erişim, eski tablo erişim kontrolü kullanılarak sağlanır. Başlamadan önce bkz.

Yükseltme işlemi

Unity Catalog kullanarak meta veri deponuzdaki bir Hive tablosunu yönetilen bir tabloya yükseltmek için:

  1. Varolan tabloyu sorgulayarak yeni bir Unity Kataloğu tablosu oluşturun. Yer tutucu değerlerini değiştirin:

    • <uc-catalog>: Yeni tablo için Unity Catalog kataloğu.
    • <uc-schema>: Yeni tablo için Unity Kataloğu şeması.
    • <new-table>: Unity Kataloğu tablosu için bir ad.
    • <source-schema>: Hive tablosunun şeması, örneğin default.
    • <source-table>: Hive tablosunun adı.

    SQL

    CREATE TABLE <uc-catalog>.<new-schema>.<new-table>
    AS SELECT * FROM hive_metastore.<source-schema>.<source-table>;
    

    Python

    df = spark.table("hive_metastore.<source-schema>.<source-table>")
    
    df.write.saveAsTable(
      name = "<uc-catalog>.<uc-schema>.<new-table>"
    )
    

    R

    %r
    library(SparkR)
    
    df = tableToDF("hive_metastore.<source-schema>.<source-table>")
    
    saveAsTable(
      df = df,
      tableName = "<uc-catalog>.<uc-schema>.<new-table>"
    )
    

    Scala

    val df = spark.table("hive_metastore.<source-schema>.<source-table>")
    
    df.write.saveAsTable(
      tableName = "<uc-catalog>.<uc-schema>.<new-table>"
    )
    

    Yalnızca bazı sütunları veya satırları geçirmek istiyorsanız, SELECT deyimini değiştirin.

    Note

    Burada sunulan komutlar, verilerin ayrılmış bir yönetilen depolama konumuna kopyalandığı bir yönetilen tablo oluşturur. Bunun yerine, bulut depolamadaki verileri taşımadan tablonun Unity Kataloğu'na kaydedildiği bir dış tablo oluşturmak istiyorsanız bkz . Yükseltme sihirbazını kullanarak Hive meta veri deposundan Unity Kataloğu dış tablolarına şema veya tablo yükseltme. Ayrıca bkz. Unity Kataloğu'nda yönetilen depolama konumu belirtme.

  2. Hesap düzeyindeki kullanıcılara veya gruplara yeni tabloya erişim izni verin. Bkz. Unity Kataloğu'nda Ayrıcalıkları Yönetme.

  3. (İsteğe bağlı) Özgün Hive tablosuna, kullanıcıları yeni Unity Kataloğu tablosuna işaret eden bir açıklama ekleyin.

    Tablo açıklamasını eklemek için katalogdaki hive.metastore özgün tabloya dönün. Katalog Gezgini'ne kullanarak tablo açıklamaları eklemeyi öğrenmek için bkz . Verilere ve yapay zeka varlıklarına açıklama ekleme. Not defterinde veya SQL sorgu düzenleyicisinde SQL deyimlerini kullanarak tablo açıklamaları eklemeyi öğrenmek için bkz. COMMENT ON.

    Tablo açıklamasında aşağıdaki söz dizimini kullanırsanız, kullanım dışı bırakılmış Hive tablosuna başvuran not defterleri ve SQL sorgu düzenleyicisi sorguları, üstü çizili metin kullanarak kullanım dışı bırakılan tablo adını görüntüler, açıklamayı uyarı olarak görüntüler ve kodunuzu yeni tabloya başvuracak şekilde güncelleştirebilen Genie Code'a hızlı düzeltme bağlantısı sağlar.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Bkz Hive tablosunun geçirildiğini belirtmek için açıklama ekleme.

  4. Tablo geçirildikten sonra, kullanıcıların mevcut sorgularını ve iş yüklerini yeni tabloyu kullanacak şekilde güncelleştirmeleri gerekir.

    özgün Hive tablosuna isteğe bağlı önceki adımda listelenen gibi bir açıklama eklediyseniz, iş yüklerini bulmanıza ve değiştirmenize yardımcı olması için Genie Code'u kullanabilirsiniz. Eski tablo başvurusunu güncellemek için Genie Code'u kullanmayı görün.

  5. Eski tabloyu bırakmadan önce, bu tabloya erişimi iptal edip ilgili sorguları ve iş yüklerini yeniden çalıştırarak bağımlılıkları test edin.

    Eski tabloya başvuran mevcut kodu bulmanıza ve güncelleştirmenize yardımcı olmak için kullanımdan kaldırma açıklamalarını kullanmaya devam ediyorsanız eski tabloyu bırakmayın.

Görünümü Unity Kataloğu'na yükseltme

Görünümde referans verilen tüm tabloları aynı Unity Catalog metastore'a yükselttikten sonra, yeni tablolara referans veren yeni bir görünüm oluşturabilirsiniz.

Hive tablosunun taşındığını belirtmek için yorum ekleyin

Kullanım dışı bırakılmış Hive tablosuna kullanıcıları yeni Unity Kataloğu tablosuna işaret eden bir açıklama eklediğinizde, kullanım dışı bırakılmış Hive tablosuna başvuran not defterleri ve SQL sorgu düzenleyicisi sorguları, üstü çizili metin kullanarak kullanım dışı bırakılan tablo adını görüntüler, açıklamayı uyarı olarak görüntüler ve kodunuzu yeni tabloya başvuracak şekilde güncelleştirebilen Genie Code'a bir Hızlı Düzeltme bağlantısı sağlar.

Hive tablosunu kullanımdan kaldırma uyarısı

Açıklamanız aşağıdaki biçimi kullanmalıdır:

This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.

Katalog Gezgini'ne kullanarak tablo açıklamaları eklemeyi öğrenmek için bkz . Verilere ve yapay zeka varlıklarına açıklama ekleme. Not defterinde veya SQL sorgu düzenleyicisinde SQL deyimlerini kullanarak tablo açıklamaları eklemeyi öğrenmek için bkz. COMMENT ON.

Kullanım dışı bırakılmış tablo başvurularını güncelleştirmek için Genie Code kullanma

Kullanım dışı bırakılmış Hive meta veri deposu tablolarına yapılan başvuruları Unity Kataloğu eşdeğerleriyle değiştirmek için Genie Code'u kullanabilirsiniz. Genie Code, kataloğunuzda nerede olduğunu bilmeseniz bile eşdeğer Unity Kataloğu tablosunu bulabilen gelişmiş tablo arama özelliklerine sahiptir. Genie Code'dan bir hive_metastore tabloyu Unity Kataloğu'nda eşdeğer bir tabloyla değiştirmesini isteyin ve kataloğunuzda arama yapıp şema benzerliğine göre en iyi eşleşmeyi tanımlar ve kodunuzu güncelleştirir.

Hive meta veri deposu tablosunu UC eşdeğeriyle değiştirmek için Genie Code kullanma.

Ayrıca bkz. Genie Code Kullanma