MySQL'de federasyon sorguları çalıştırma
Bu makalede, Azure Databricks tarafından yönetilmeyen MySQL verileri üzerinde federasyon sorguları çalıştırmak için Lakehouse Federasyonu'nun nasıl set açıklanmaktadır. Lakehouse Federasyonu hakkında daha fazla bilgi edinmek için bkz . Lakehouse Federasyonu nedir?.
Lakehouse Federation kullanarak MySQL veritabanınıza bağlanmak için Azure Databricks Unity Catalog meta veri deponuzda aşağıdakileri oluşturmanız gerekir:
- MySQL veritabanınıza bağlantı.
- Unity catalog'da MySQL veritabanınızı yansıtan ; böylece Unity Catalog 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 Catalogiçin çalışma alanı etkinleştirildi.
İşlem gereksinimleri:
- İşlem kaynağınızdan hedef veritabanı sistemlerine ağ bağlantısı. Bkz . Lakehouse Federasyonu için ağ önerileri.
- Azure Databricks hesaplama, Databricks Runtime 13.3 LTS veya üzerini kullanmalı ve Paylaşılan veya Tek kullanıcı erişim modunu kullanmalıdır.
- SQL ambarları profesyonel veya sunucusuz olmalı ve 2023.40 veya üzerini kullanmalıdır.
Gerekli izinler:
- Bağlantı oluşturmak için meta veri deposu yöneticisi veya çalışma alanına bağlı Unity
CREATE CONNECTION
meta veri deposunda Catalog ayrıcalığına sahip bir kullanıcı olmanız gerekir. - Yabancı catalogoluş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ı, dış veritabanı sistemine erişmek için bir yol ve credentials belirtir. Bağlantı oluşturmak için Azure Databricks not defterinde veya Databricks SQL sorgu düzenleyicisinde Catalog 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ı.
Catalog Gezgini
Azure Databricks çalışma alanınızda
simgesine tıklayın. bölmesinin üst kısmında Ekle veya artı simgesine tıklayın ekle simgesine tıklayın ve menüden Bağlantı ekle'yi . Alternatif olarak,
Hızlı erişim sayfasında Dış veridüğmesine tıklayın, sekmesine gidin ve Bağlantı oluştur öğesine tıklayın. sihirbazınınbağlantı Bağlantı temel bilgileri sayfasında,kullanıcı dostu birBağlantı adı girin. MySQL'in Select.
(İsteğe bağlı) Açıklama ekleyin.
Tıklayın İleri.
Kimlik Doğrulaması sayfasında, MySQL örneğinin aşağıdaki bağlantı özelliklerini girin:
-
Konak: Örneğin,
mysql-demo.lb123.us-west-2.rds.amazonaws.com
-
Bağlantı noktası: Örneğin,
3306
-
Kullanıcı: Örneğin,
mysql_user
-
Parola: Örneğin,
password123
-
Konak: Örneğin,
(İsteğe bağlı): SelectGüven sunucusu sertifikası. Bu seçenek varsayılan olarak seçili değildir. Aktarım katmanı seçildiğinde, kanalı şifrelemek için SSL kullanır ve güveni doğrulamak için sertifika zincirini atlar. Güven doğrulamasını atlamanıza gerek olmadıkça bu set'ı varsayılan olarak bırakın.
Bağlantıoluştur'a tıklayın.
Catalog temel bilgiler sayfasında, yabancı catalogiçin bir ad girin. Yabancı catalog, Azure Databricks ve Unity Catalogkullanarak bu veritabanındaki verileri sorgulayıp yönetebilmeniz için bir dış veri sistemindeki veritabanını yansıtır.
(İsteğe bağlı) Çalıştığını onaylamak için Bağlantıyı test et'e tıklayın.
catalogOluştur 'u tıklayın.
Access sayfasında, oluşturduğunuz select'e kullanıcıların erişebileceği çalışma alanlarını catalog. Bütün çalışma alanlarınınerişimi
olabilir veya Çalışma alanlarına ata'ya tıklayın, çalışma alanlarınıseçin ve ardından Ata'ya tıklayın.içindeki tüm nesnelere erişimi yönetebilecek olan catalog ile değiştirin. Metin kutusuna bir sorumlu yazmaya başlayın ve döndürülen sonuçlarda sorumluya tıklayın.
Grant Ayrıcalıklar catalogüzerinde. Grantöğesine tıklayın:
- nesnelere erişimi olacak catalog belirtin. Metin kutusuna bir sorumlu yazmaya başlayın ve döndürülen sonuçlarda sorumluya tıklayın.
-
Select'den 'e kadar grant. Tüm hesap kullanıcılarına varsayılan olarak
BROWSE
verilir.-
Select
Veri Okuyucusu açılan menüden grantnesnelerdeki
read
catalog ayrıcalıklarına geçin. - Select .
- selectayrıcalıklarını el ile grant.
-
Select
Veri Okuyucusu açılan menüden grantnesnelerdeki
- Grantöğesine tıklayın.
Tıklayın İleri.
Meta Veri sayfasında, anahtar-değer çiftleri olarak etiketleri belirtin. Daha fazla bilgi için bkz. Unity'ye etiket uygulama Catalog güvenli hale getirilebilen nesneler.
(İsteğe bağlı) Açıklama ekleyin.
Kaydet'etıklayın.
SQL
Aşağıdaki komutu bir not defterinde veya Databricks SQL sorgu düzenleyicisinde çalıştırın.
CREATE CONNECTION <connection-name> TYPE mysql
OPTIONS (
host '<hostname>',
port '<port>',
user '<user>',
password '<password>'
);
gibi hassas values için düz metin dizeleri yerine Azure Databricks credentials kullanmanızı öneririz. Örneğin:
CREATE CONNECTION <connection-name> TYPE mysql
OPTIONS (
host '<hostname>',
port '<port>',
user secret ('<secret-scope>','<secret-key-user>'),
password secret ('<secret-scope>','<secret-key-password>')
)
Not defteri SQL komutlarında düz metin dizeleri kullanmanız gerekiyorsa, ile $
gibi \
özel karakterlerden kaçarak dizeyi kesmekten kaçının. Örneğin: \$
.
Gizli dizileri ayarlama hakkında bilgi için bkz . Gizli dizi yönetimi.
Yabancı catalog oluştur
Not
Kullanıcı arabirimini veri kaynağına bağlantı oluşturmak için kullanırsanız, yabancı catalog oluşturma süreci otomatik olarak dahil edilir ve bu adımı atlayabilirsiniz.
Yabancı catalog, Azure Databricks ve Unity Catalogkullanarak bu veritabanındaki verileri sorgulayıp yönetebilmeniz için bir dış veri sistemindeki veritabanını yansıtır. Yabancı bir catalogoluşturmak için, önceden tanımlanmış olan veri kaynağına bir bağlantı kullanırsınız.
Yabancı bir catalogoluşturmak için, Azure Databricks not defterinde veya Databricks SQL sorgu düzenleyicisinde Catalog Gezgini'ni veya CREATE FOREIGN CATALOG
SQL komutunu kullanabilirsiniz.
catalogoluşturmak için Databricks REST API'sini veya Databricks CLI'yi de kullanabilirsiniz. bkz. POST /api/2.1/unity-catalog/catalogs ve 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.
Catalog Gezgini
Azure Databricks çalışma alanınızda
Gezgini' açmak için simgesine tıklayın. bölmesinin üst kısmında Ekle veya artı simgesine tıklayın ekle simgesine tıklayın ve menüden ekle'yi . Alternatif olarak, Hızlı erişim sayfasında Catalogs düğmesine tıklayın ve ardından catalog oluştur düğmesine tıklayın.
catalogsiçin yabancı catalogs 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 values'ı değiştirin.
-
<catalog-name>
: Azure Databricks'teki catalog adı. -
<connection-name>
: veri kaynağını, yolu ve erişimi belirten credentials.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>;
Desteklenen gönderimler
Aşağıdaki gönderimler tüm işlemlerde desteklenir:
- Filtreler
- Projeksiyonlar
- Limit
- İşlevler: kısmi, yalnızca filtre ifadeleri için. (Dize işlevleri, Matematiksel işlevler, Tarih, Saat ve Zaman Damgası işlevleri ve Alias, Cast, SortOrder gibi diğer çeşitli işlevler)
Aşağıdaki gönderimler Databricks Runtime 13.3 LTS ve üzeri ile SQL ambarlarında desteklenir:
- Toplamlar
- Boole işleçleri
- Aşağıdaki matematiksel işlevler (ANSI devre dışı bırakıldıysa desteklenmez): +, -, *, %, /
- Sıralama, limit ile kullanıldığında
Aşağıdaki gönderimler desteklenmez:
- Birleştirmeler
- Windows işlevleri
Veri türü eşlemeleri
MySQL'den Spark'a okuma yaptığınızda veri türleri aşağıdaki gibi eşlenir:
MySQL türü | Spark türü |
---|---|
bigint (imzalı değilse), ondalık | Ondalık Türü |
tinyint*, int, integer, mediumint, smallint | IntegerType |
bigint (imzalıysa) | LongType |
kayan noktalı sayı | FloatType |
çift | DoubleType |
char, enum, set | CharType |
varchar | VarcharType |
json, longtext, mediumtext, text, tinytext | StringType |
ikili, blob, varbinary, varchar ikili | BinaryType |
bit, boole | BooleanType |
tarih, yıl | DateType |
datetime, time, timestamp** | TimestampType/TimestampNTZType |
*
tinyint(1) signed
boole tinyint(1) unsigned
olarak kabul edilir ve içine BooleanType
dönüştürülür. MySQL belgelerinde Bağlayıcı/J Başvurusu'na bakın.
** MySQL'den okuduğunuzda, (varsayılan) ise Timestamp
MySQL TimestampType
Spark'a preferTimestampNTZ = false
eşlenir. MySQLTimestamp
, ise TimestampNTZType
ile preferTimestampNTZ = true
eşlenir.