mysql_request eklentisi

Eklenti, mysql_request Azure MySQL Server ağ uç noktasına bir SQL sorgusu gönderir ve sonuçlardaki ilk satır kümesini döndürür. Sorgu birden fazla satır kümesi döndürebilir, ancak Kusto sorgusunun geri kalanında yalnızca ilk satır kümesi kullanılabilir hale getirilir.

Eklenti işleciyle birlikte çağrılır evaluate .

Önemli

mysql_request Eklenti varsayılan olarak devre dışıdır. Eklentiyi etkinleştirmek için komutunu çalıştırın.enable plugin mysql_request. Hangi eklentilerin etkinleştirildiğini görmek için yönetim komutlarını kullanın.show plugin.

Sözdizimi

evaluatemysql_request(Bağlan ionString,SqlQuery [,SqlParameters] ) [:OutputSchema]

Söz dizimi kuralları hakkında daha fazla bilgi edinin.

Parametreler

Ad Tür Zorunlu Açıklama
Bağlan ionString string ✔️ MySQL Sunucusu ağ uç noktasını işaret eden bağlantı dizesi. Bkz. kimlik doğrulaması ve ağ uç noktasını belirtme.
Sqlquery string ✔️ SQL uç noktasında yürütülecek sorgu. Bir veya daha fazla satır kümesi döndürmelidir. Sorgunun geri kalanı için yalnızca ilk küme kullanılabilir hale getirildi.
SqlParameters dynamic Sorguyla birlikte parametre olarak geçirmek için anahtar-değer çiftlerini tutan bir özellik paketi nesnesi.
OutputSchema Eklenti çıkışının beklenen sütunları mysql_request için adlar ve türler.

Sözdizimi: (ColumnName:ColumnType [, ...] )

Not

  • OutputSchema'nın belirtilmesi kesinlikle önerilir, bu nedenle eklentinin kümeler arası sorgu gibi olmadan çalışmayabilecek senaryolarda kullanılmasına izin verir. OutputSchema, birden çok sorgu iyileştirmesini de etkinleştirebilir.
  • SQL ağ uç noktası tarafından döndürülen ilk satır kümesinin çalışma zamanı şeması OutputSchema şemasıyla eşleşmiyorsa hata oluşur.

Kimlik doğrulaması ve yetkilendirme

MySQL Sunucusu ağ uç noktasına yetkilendirmek için bağlantı dizesi yetkilendirme bilgilerini belirtmeniz gerekir. Desteklenen yetkilendirme yöntemi kullanıcı adı ve parola ile yapılır.

Belirtme çizgisi ilkesini ayarlama

Eklenti, MySql veritabanına açıklama balonları yapar. Kümenin belirtme çizgisi ilkesinin hedef MySqlDbUri'ye yönelik tür mysql çağrılarını etkinleştirdiğinden emin olun.

Aşağıdaki örnekte MySQL veritabanları için belirtme çizgisi ilkesinin nasıl tanımlanacağı gösterilmektedir. Belirtme çizgisi ilkesini belirli uç noktalarla (my_endpoint1, my_endpoint2) kısıtlamanızı öneririz.

[
  {
    "CalloutType": "mysql",
    "CalloutUriRegex": "my_endpoint1\\.mysql\\.database\\.azure\\.com",
    "CanCall": true
  },
  {
    "CalloutType": "mysql",
    "CalloutUriRegex": "my_endpoint2\\.mysql\\.database\\.azure\\.com",
    "CanCall": true
  }
]

Aşağıdaki örnekte CalloutType için mysqlbir .alter callout policy komut gösterilmektedir:

.alter cluster policy callout @'[{"CalloutType": "mysql", "CalloutUriRegex": "\\.mysql\\.database\\.azure\\.com", "CanCall": true}]'

Kullanıcı adı ve parola kimlik doğrulaması

mysql_request Eklenti yalnızca MySQL sunucu uç noktasında kullanıcı adı ve parola kimlik doğrulamasını destekler ve Microsoft Entra kimlik doğrulamasıyla tümleştirilmez.

Kullanıcı adı ve parola, bağlantı dizesinin bir parçası olarak aşağıdaki parametreler kullanılarak sağlanır:

User ID=...; Password=...;

Uyarı

Gizli veya korunan bilgilerin bağlantı dizesi ve sorgulardan gizlenerek Kusto izlemesinden atlanması gerekir. Daha fazla bilgi için bkz . belirsiz dize değişmez değerleri.

Şifreleme ve sunucu doğrulaması

Güvenlik için, SslMode bir MySQL sunucusu ağ uç noktasına bağlanırken koşulsuz olarak olarak ayarlanır Required . Sonuç olarak, sunucunun geçerli bir SSL/TLS sunucu sertifikasıyla yapılandırılması gerekir.

Ağ uç noktasını belirtme

bağlantı dizesi parçası olarak MySQL ağ uç noktasını belirtin.

Söz dizimi:

Server=FQDN [Port=Bağlantı Noktası]

Where:

  • FQDN , uç noktanın tam etki alanı adıdır.
  • Bağlantı noktası , uç noktanın TCP bağlantı noktasıdır. Varsayılan olarak varsayılır 3306 .

Örnekler

Azure MySQL DB'ye SQL sorgusu

Aşağıdaki örnek, Azure MySQL veritabanına bir SQL sorgusu gönderir. 'den [dbo].[Table]tüm kayıtları alır ve ardından sonuçları işler.

Not

Bu örnek, verileri bu şekilde filtrelemek veya yansıtmak için öneri olarak alınmamalıdır. SQL sorguları, mümkün olan en küçük veri kümesini döndürecek şekilde oluşturulmalıdır.

evaluate mysql_request(
    'Server=contoso.mysql.database.azure.com; Port = 3306;'
    'Database=Fabrikam;'
    h'UID=USERNAME;'
    h'Pwd=PASSWORD;',
    'select * from `dbo`.`Table`') : (Id: int, Name: string)
| where Id > 0
| project Name

Değişikliklerle Azure MySQL veritabanına SQL sorgusu

Aşağıdaki örnek, azure mysql veritabanına bir SQL sorgusu gönderir ve başka bir datetime sütun eklerken tüm kayıtları [dbo].[Table]alır ve ardından sonuçları Kusto tarafında işler. SQL sorgusunda kullanılacak bir SQL parametresini (@param0) belirtir.

evaluate mysql_request(
    'Server=contoso.mysql.database.azure.com; Port = 3306;'
    'Database=Fabrikam;'
    h'UID=USERNAME;'
    h'Pwd=PASSWORD;',
    'select *, @param0 as dt from `dbo`.`Table`',
    dynamic({'param0': datetime(2020-01-01 16:47:26.7423305)})) : (Id:long, Name:string, dt: datetime)
| where Id > 0
| project Name

Sorgu tanımlı çıkış şeması olmadan Azure MySQL veritabanına SQL sorgusu

Aşağıdaki örnek, çıkış şeması olmayan bir Azure MySQL veritabanına SQL sorgusu gönderir. Şema bilinmiyorsa, sorgunun performansını etkileyene kadar bu önerilmez.

evaluate mysql_request(
    'Server=contoso.mysql.database.azure.com; Port = 3306;'
    'Database=Fabrikam;'
    h'UID=USERNAME;'
    h'Pwd=PASSWORD;',
    'select * from `dbo`.`Table`')
| where Id > 0
| project Name

Bu özellik Azure İzleyici'de desteklenmez.