Google BigQuery'de federasyon sorguları çalıştırma
Önemli
Bu özellik Genel Önizlemededir.
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 sorgu söz dizimini ve veri idare araçlarını kullanarak Azure Databricks kullanıcısının veritabanına erişimini yönetebilmeniz için Unity Kataloğu'ndaki BigQuery veritabanınızı yansıtan bir yabancı katalog.
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 13.3 LTS veya üzerini ve paylaşılan veya tek kullanıcılı 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 ayrıcalığı olan
CREATE CONNECTION
bir kullanıcı olmanız gerekir. - Yabancı katalog oluşturmak için meta veri deposu üzerinde izninizin olması ve bağlantının sahibi olmanız veya bağlantıda ayrıcalığınız olması
CREATE FOREIGN CATALOG
gerekirCREATE CATALOG
.
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 CREATE CONNECTION
Databricks SQL sorgu düzenleyicisinde Katalog Gezgini'ni veya SQL komutunu kullanabilirsiniz.
Gerekli izinler: Meta veri deposu yöneticisi veya ayrıcalığına CREATE CONNECTION
sahip kullanıcı.
Katalog gezgini
Azure Databricks çalışma alanınızda Katalog'a tıklayın
.
Sol bölmede Dış Veri menüsünü genişletin ve Bağlan yonlar'ı seçin.
Bağlantı oluştur'a tıklayın.
Kullanıcı dostu bir Bağlan ion adı girin.
BigQuery'nin Bağlan bir türünü seçin.
BigQuery örneğinin aşağıdaki bağlantı özelliğini girin.
GoogleServiceAccountKeyJson: BigQuery projesini belirtmek ve kimlik doğrulaması sağlamak için kullanılan ham JSON nesnesi. 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 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": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n", "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ı) Ağ bağlantısını onaylamak için Bağlantıyı test et'e tıklayın. Bu eylem kimlik doğrulamayı test etmez.
(İsteğe bağlı) Açıklama ekleyin.
Oluştur’a 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 dizilerini 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
Yabancı katalog, Azure Databricks ve Unity Kataloğu'nu kullanarak bu veritabanındaki verileri sorgulayıp yönetebilmeniz için bir dış veri sistemindeki veritabanını yansıtı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 Katalog Gezgini'ni veya CREATE FOREIGN CATALOG
Azure Databricks not defterinde veya Databricks SQL sorgu düzenleyicisinde kullanabilirsiniz.
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 gezgini
- Azure Databricks çalışma alanınızda Katalog'a tıklayın
.
- Katalog Oluştur düğmesine tıklayın.
- Yeni katalog oluştur iletişim kutusunda katalog için bir ad girin ve Bir Yabancı Türüseçin.
- Unity Kataloğu kataloğu olarak yansıtmak istediğiniz veritabanına erişim sağlayan Bağlan seçin.
- Oluştur’a tıklayın.
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ır
- İş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
Aşağıdaki gönderimler desteklenmez:
- Birleştirmeler
- 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 preferTimestampNTZ = false
Spark TimestampType
ile eşlenir. BigQuery Timestamp
ise ile TimestampNTZType
preferTimestampNTZ = true
eşlenir.