Aracılığıyla paylaş


Google BigQuery'de federasyon sorguları çalıştırma

Bu makalede, Azure Databricks tarafından yönetilmeyen BigQuery verileri üzerinde federasyon sorguları çalıştırmak için Lakehouse Federasyonu'nun nasıl ayarlanacağı açıklanmaktadır. Lakehouse Federasyonu hakkında daha fazla bilgi edinmek için bkz . Lakehouse Federasyonu nedir?.

Lakehouse Federation kullanarak BigQuery veritabanınıza bağlanmak için Azure Databricks Unity Kataloğu meta veri deponuzda aşağıdakileri oluşturmanız gerekir:

  • BigQuery veritabanınızla bağlantı.
  • Unity Kataloğu'ndaki BigQuery veritabanınızı yansıtan bir yabancı katalog; böylece Unity Kataloğu sorgu söz dizimini ve veri idare araçlarını kullanarak Azure Databricks kullanıcısının veritabanına erişimini yönetebilirsiniz.

Başlamadan önce

Çalışma alanı gereksinimleri:

  • Unity Kataloğu için etkinleştirilen çalışma alanı.

İşlem gereksinimleri:

  • Databricks Runtime kümenizden veya SQL ambarından hedef veritabanı sistemlerine ağ bağlantısı. Bkz . Lakehouse Federasyonu için ağ önerileri.
  • Azure Databricks kümeleri Databricks Runtime 16.1 veya üzerini ve paylaşılan veya tek kullanıcı erişim modunu kullanmalıdır.
  • SQL ambarları Pro veya Sunucusuz olmalıdır.

Gerekli izinler:

  • Bağlantı oluşturmak için meta veri deposu yöneticisi veya çalışma alanına bağlı Unity Kataloğu meta veri deposunda CREATE CONNECTION ayrıcalığına sahip bir kullanıcı olmanız gerekir.
  • Yabancı katalog oluşturmak için meta veri deposunda CREATE CATALOG iznine sahip olmanız ve bağlantının sahibi olmanız veya bağlantıda CREATE FOREIGN CATALOG ayrıcalığına sahip olmanız gerekir.

Aşağıdaki her görev tabanlı bölümde ek izin gereksinimleri belirtilir.

Bağlantı oluşturma

Bağlantı, bir dış veritabanı sistemine erişmek için bir yol ve kimlik bilgileri belirtir. Bağlantı oluşturmak için, Bir Azure Databricks not defterinde veya Databricks SQL sorgu düzenleyicisinde Katalog Gezgini'ni veya CREATE CONNECTION SQL komutunu kullanabilirsiniz.

Not

Bağlantı oluşturmak için Databricks REST API'sini veya Databricks CLI'yi de kullanabilirsiniz. bkz. POST /api/2.1/unity-catalog/connections ve Unity Catalog komutları.

Gerekli izinler: Meta veri deposu yöneticisi veya ayrıcalığına CREATE CONNECTION sahip kullanıcı.

Katalog Tarayıcısı

  1. Azure Databricks çalışma alanınızda Katalog simgesiKatalogüzerine tıklayın.

  2. Kataloğu bölmesinin üst kısmında Ekle veya artı simgesine tıklayın ekle simgesine tıklayın ve menüden Bağlantı ekle seçin.

    Alternatif olarak, Hızlı erişim sayfasında Dış veri düğmesine tıklayın, Bağlantılar sekmesine gidin ve Bağlantı oluşturöğesine tıklayın.

  3. Bağlantı ayarlama sihirbazının Bağlantı temel bilgileri sayfasında,kullanıcı dostu bir Bağlantı adı girin.

  4. bir Google BigQueryBağlantı türü seçin ve ardından İleriöğesine tıklayın.

  5. Kimlik Doğrulaması sayfasında, BigQuery örneğiniz için Google hizmet hesabı anahtarı json dosyasını girin.

    Bu, BigQuery projesini belirtmek ve kimlik doğrulaması sağlamak için kullanılan ham bir JSON nesnesidir. Bu JSON nesnesini oluşturabilir ve Google Cloud'daki hizmet hesabı ayrıntıları sayfasından 'KEYS' altında indirebilirsiniz. Hizmet hesabının BigQuery Kullanıcı ve BigQuery Veri Görüntüleyicisi de dahil olmak üzere BigQuery'de verilen uygun izinlere sahip olması gerekir. Aşağıda bir örnek verilmiştir.

    {
      "type": "service_account",
      "project_id": "PROJECT_ID",
      "private_key_id": "KEY_ID",
      "private_key": "PRIVATE_KEY",
      "client_email": "SERVICE_ACCOUNT_EMAIL",
      "client_id": "CLIENT_ID",
      "auth_uri": "https://accounts.google.com/o/oauth2/auth",
      "token_uri": "https://accounts.google.com/o/oauth2/token",
      "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
      "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL",
      "universe_domain": "googleapis.com"
    }
    
  6. (İsteğe bağlı) BigQuery örneğinin Proje Kimliği girin:

    Bu, bu bağlantı altında çalıştırılacak tüm sorgular için faturalama için kullanılan BigQuery projesinin adıdır. Varsayılan olarak hizmet hesabınızın proje kimliğini kullanır. Hizmet hesabının BigQuery'de bu proje için BigQuery Kullanıcıdahil olmak üzere uygun izinlere sahip olması gerekir. BigQuery tarafından geçici tabloları depolamak için kullanılan ek veri kümesi bu projede oluşturulabilir.

  7. (İsteğe bağlı) Açıklama ekleyin.

  8. Bağlantıoluştur'a tıklayın.

  9. Kataloğu temel bilgileri sayfasında, yabancı katalog için bir ad girin. Yabancı bir katalog, bir dış veri sistemindeki bir veritabanını yansıtarak Azure Databricks ve Unity Kataloğu'nu kullanarak bu veritabanındaki verileri sorgulamanıza ve yönetmenize olanak tanır.

  10. (İsteğe bağlı) Bağlantı test et'e tıklayarak çalıştığını onaylayın.

  11. Katalog oluştur'e tıklayın.

  12. Access sayfasında, kullanıcıların oluşturduğunuz kataloğa erişebileceği çalışma alanlarını seçin. Tüm çalışma alanlarınınerişimi seçebilir veyaçalışma alanlarına ata'ya tıklayabilir, çalışma alanlarını seçip ata'ya tıklayabilirsiniz.

  13. Katalogdaki tüm nesnelerin erişimini yönetebilecek olan kişiyi, Sahibi olarak değiştirin. Metin kutusuna bir sorumlu yazmaya başlayın ve görüntülenen sonuçlarda sorumluya tıklayın.

  14. Katalogda Ayrıcalıkları tanıyın. ver, tıklayın

    1. Katalogdaki nesnelere erişimi olacak Sorumlularını belirtin. Metin kutusuna bir sorumlu yazmaya başlayın ve görüntülenen sonuçlarda sorumluya tıklayın.
    2. Her bir sorumluya vermek üzere Privilege ön ayarlarını seçin. Tüm hesap kullanıcılarına varsayılan olarak BROWSE verilir.
      • Katalogdaki nesnelerde ayrıcalıkları vermek için açılan menüden veri okuyucu seçin.
      • Katalogdaki nesnelerde ve read ayrıcalıkları vermek için açılan menüden modify seçin.
      • Vermek istediğiniz ayrıcalıkları el ile seçin.
    3. ver'e tıklayın.
  15. Sonrakiöğesine tıklayın.

  16. Meta Veri sayfasında, etiket anahtar-değer çiftlerini belirtin. Daha fazla bilgi için bkz. Unity Kataloğu üzerindeki güvenli hale getirilebilir nesnelere etiket uygulama.

  17. (İsteğe bağlı) Açıklama ekleyin.

  18. Kaydet'e tıklayın.

SQL

Aşağıdaki komutu bir not defterinde veya Databricks SQL sorgu düzenleyicisinde çalıştırın. değerini BigQuery projesini belirten ve kimlik doğrulaması sağlayan ham bir JSON nesnesiyle değiştirin <GoogleServiceAccountKeyJson> . Bu JSON nesnesini oluşturabilir ve Google Cloud'daki hizmet hesabı ayrıntıları sayfasından 'KEYS' altında indirebilirsiniz. Hizmet hesabının BigQuery Kullanıcısı ve BigQuery Veri Görüntüleyicisi dahil olmak üzere BigQuery'de uygun izinlere sahip olması gerekir. Örnek bir JSON nesnesi için bu sayfadaki Katalog Gezgini sekmesini görüntüleyin.

CREATE CONNECTION <connection-name> TYPE bigquery
OPTIONS (
  GoogleServiceAccountKeyJson '<GoogleServiceAccountKeyJson>'
);

Kimlik bilgileri gibi hassas değerler için düz metin dizeleri yerine Azure Databricks gizli dizileri kullanmanızı öneririz. Örneğin:

CREATE CONNECTION <connection-name> TYPE bigquery
OPTIONS (
  GoogleServiceAccountKeyJson secret ('<secret-scope>','<secret-key-user>')
)

Gizli dizileri ayarlama hakkında bilgi için bkz . Gizli dizi yönetimi.

Yabancı katalog oluşturma

Not

Kullanıcı arabirimini veri kaynağına bağlantı oluşturmak için kullanırsanız, yabancı katalog oluşturma dahil edilir ve bu adımı atlayabilirsiniz.

Yabancı bir katalog, bir dış veri sistemindeki bir veritabanını yansıtarak Azure Databricks ve Unity Kataloğu'nu kullanarak bu veritabanındaki verileri sorgulamanıza ve yönetmenize olanak tanır. Yabancı katalog oluşturmak için, önceden tanımlanmış olan veri kaynağına bir bağlantı kullanın.

Yabancı katalog oluşturmak için, Bir Azure Databricks not defterinde veya Databricks SQL sorgu düzenleyicisinde Katalog Gezgini'ni veya CREATE FOREIGN CATALOG kullanabilirsiniz. Katalog oluşturmak için Databricks REST API'sini veya Databricks CLI'yi de kullanabilirsiniz. Bkz. POST /api/2.1/unity-catalog/catalogs veya Unity Catalog komutları.

gerekli izinler:CREATE CATALOG meta veri deposu üzerindeki izin ve bağlantının sahipliği veya CREATE FOREIGN CATALOG bağlantı üzerindeki ayrıcalık.

Katalog Tarayıcısı

  1. Azure Databricks çalışma alanınızda, Katalog Gezgini'ni açmak için Katalog simgesine tıklayınKatalog.

  2. Kataloğu bölmesinin üst kısmında Ekle veya artı simgesine tıklayın ekle simgesine tıklayın ve menüden Katalog ekle seçin.

    Alternatif olarak, Hızlı erişim sayfasında Kataloglar düğmesine tıklayın ve ardından Katalog oluştur düğmesine tıklayın.

  3. (İsteğe bağlı) Aşağıdaki katalog özelliğini girin:

    Veri Projesi Kimliği: Bu kataloğa eşlenecek verileri içeren BigQuery projesinin adı. Varsayılan olarak, bağlantı düzeyinde ayarlanan faturalama projesi kimliğini kullanır.

  4. katalog oluşturma bölümünde yabancı katalog oluşturma yönergelerini izleyin.

SQL

Aşağıdaki SQL komutunu bir not defterinde veya Databricks SQL düzenleyicisinde çalıştırın. Köşeli ayraç içindeki öğeler isteğe bağlıdır. Yer tutucu değerlerini değiştirin.

  • <catalog-name>: Azure Databricks'teki kataloğun adı.
  • <connection-name>: Veri kaynağını, yolu ve erişim kimlik bilgilerini belirten bağlantı nesnesi.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>;

Desteklenen gönderimler

Aşağıdaki gönderimler desteklenir:

  • Filtreler
  • Projeksiyonlar
  • Sınırlamak
  • İşlevler: kısmi, yalnızca filtre ifadeleri için. (Dize işlevleri, Matematiksel işlevler, Veri, Zaman ve Zaman Damgası işlevleri ve Alias, Cast, SortOrder gibi diğer çeşitli işlevler)
  • Toplamlar
  • Sıralama, sınır ile kullanıldığında
  • Birleştirmeler (Databricks Runtime 16.1 veya üzeri)

Aşağıdaki gönderimler desteklenmez:

  • Windows işlevleri

Veri türü eşlemeleri

Aşağıdaki tabloda BigQuery to Spark veri türü eşlemesi gösterilmektedir.

BigQuery türü Spark türü
bignumeric, sayısal Ondalık Türü
int64 LongType
float64 DoubleType
dizi, coğrafya, aralık, json, dize, yapı VarcharType
bayt BinaryType
ikili BooleanType
tarih DateType
datetime, time, timestamp TimestampType/TimestampNTZType

BigQuery'den okuduğunuzda, BigQuery Timestamp (varsayılan) ise TimestampType Spark preferTimestampNTZ = false ile eşlenir. BigQuery Timestamp ise ile TimestampNTZTypepreferTimestampNTZ = trueeşlenir.