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ıdaCREATE 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ı
Azure Databricks çalışma alanınızda
Katalogüzerine tıklayın.
Kataloğu bölmesinin üst kısmında Ekle veya artı simgesine tıklayınekle simgesine tıklayın ve menüden Bağlantı ekle seçin. Alternatif olarak,
Hızlı erişim sayfasında Dış veridüğmesine tıklayın, Bağlantılar sekmesine gidin veBağlantı oluştur öğesine tıklayın.Bağlantı ayarlama sihirbazınınBağlantı temel bilgileri sayfasında,kullanıcı dostu birBağlantı adı girin. bir Google BigQueryBağlantı türü seçin ve ardından İleriöğesine tıklayın.
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" }
(İ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.
(İsteğe bağlı) Açıklama ekleyin.
Bağlantıoluştur'a tıklayın.
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.
(İsteğe bağlı) Bağlantı test et'e tıklayarak çalıştığını onaylayın.
Katalog oluştur'e tıklayın.
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. 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.
Katalogda Ayrıcalıkları tanıyın. ver,
tıklayın - 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. - 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üdenmodify
seçin. - Vermek istediğiniz ayrıcalıkları el ile seçin.
- Katalogdaki nesnelerde
- ver'e tıklayın.
- Katalogdaki nesnelere erişimi olacak
Sonrakiöğesine tıklayın.
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.
(İsteğe bağlı) Açıklama ekleyin.
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ı
Azure Databricks çalışma alanınızda, Katalog Gezgini'ni açmak için
Katalog.
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 Kataloglardüğmesine tıklayın ve ardından Katalog oluştur düğmesine tıklayın. (İ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.
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 TimestampNTZType
preferTimestampNTZ = true
eşlenir.