Flink SQL ipuçları, tablo tanımlarını veya dağıtım ayarlarını değiştirmeden sorgu düzeyinde yürütme planı oluşturulmasını manuel olarak etkilemenizi sağlar. İyileştiricinin varsayılan kararları iş yükünüzün performans veya kaynak gereksinimleriyle uyumlu olmadığında ipuçlarını kullanın.
Üç ipucu kategorisi bulunur ve hepsi akış işlerine uygulanır:
| İpucu türü | Uygulandığı alan | Minimum sürüm |
|---|---|---|
| Dinamik tablo seçenekleri | Akış | VVR 4.x |
| Arama join ipuçları | Akış | — |
| Durum TTL ipuçları | Akış | VVR 8.0.7 (grup toplama); VVR 8.0.1 (normal join) |
Tam ipucu sözdizimi belirtimi için bkz. SQL hints.
Dinamik tablo seçenekleri
Dinamik tablo seçenekleri, temel tablo tanımını değiştirmeden tek bir sorgu kapsamı içinde bağlayıcı ve biçim seçeneklerini belirtmenize veya geçersiz kılmanıza olanak tanır.
Sözdizimi ve kullanım örnekleri için bkz. Dynamic table options.
Arama join ipuçları
Arama join ipuçları; boyut tablosu join'leri için arama yürütme stratejisini, zaman uyumsuz modu, önbelleğe almayı ve yeniden deneme davranışını kontrol eder.
Sözdizimi, kullanılabilir seçenekler ve örnekler için bkz. JOIN hints for dimension tables.
Durum TTL ipuçları
Durum time-to-live (TTL) ipuçları, tek bir sorgu içindeki bağımsız durumlu operatörler için farklı TTL değerleri ayarlamanızı sağlar. Bu sayede operatör başına durum boyutları azalır ve sistem kararlılığı artar.
Durum TTL ipuçları iki operatör türüne uygulanır:
| Operatör | VVR 8.0.7 ve sonrası | VVR 8.0.6 ve öncesi |
|---|---|---|
| Normal join | Durum TTL ipuçları + hints for regular join | Yalnızca normal join için ipuçları |
| Grup toplama | Durum TTL ipuçları | Desteklenmez |
Durum TTL yapılandırma
Durum TTL yapılandırmak için üç yöntem bulunur. Bu yöntemler aşağıdaki öncelik sırasına göre etkili olur:
Uzman modu > Durum TTL ipuçları > Dağıtım parametresi
| Yöntem | Kapsam | Nasıl yapılandırılır |
|---|---|---|
| Uzman modu | Operatör başına, dağıtımlar genelinde | Bkz. Configure operator parallelism, chaining policy, and state TTL |
| Durum TTL ipuçları | Operatör başına, bir sorgu içinde | Satır içi /*+ STATE_TTL(...) */ ipucu |
| Dağıtım parametresi | Tüm dağıtım | table.exec.state.ttl öğesini ayarlayın — bkz. table.exec.state.ttl |
Dağıtım yapılandırmasını değiştirmeden sorgu düzeyinde TTL kontrolüne ihtiyaç duyduğunuzda durum TTL ipuçlarını kullanın. Aynı operatör başına ayarlar birden çok dağıtım için geçerli olduğunda uzman modunu kullanın.