SQL betikleri, bir iş dağıtmadan Development Console üzerinde doğrudan CALL komutları ile DDL, DQL ve DML deyimlerini yazmanıza ve çalıştırmanıza olanak tanır. Katalogları ve tabloları yapılandırmak, sorgular yürütmek ve Apache Paimon tablolarını yönetmek için betikleri kullanın.
Temel kavramlar
Deyim türleri
Betikler, her biri farklı bir amaca hizmet eden üç SQL deyimi kategorisini destekler:
| Tür | Amaç | Örnekler |
|---|---|---|
| DDL (Veri Tanımlama Dili) | Meta verileri değiştirir; kataloglar ve tablolar gibi nesneleri ekler, değiştirir veya siler. | CREATE CATALOG, CREATE TABLE, DROP TABLE |
| DML (Veri İşleme Dili) | Tablolardaki verileri değiştirir. | INSERT INTO, DELETE |
| DQL (Veri Sorgulama Dili) | Verileri okur ve sorgular. | SELECT |
Betikler ayrıca CALL komutunu ve EXPLAIN deyimini destekler. Bir deyimin yürütme planını görüntülemek ve sorunları gidermek için EXPLAIN kullanın.
DDL veya DML deyimlerini doğrudan çalıştırmak meta verilerinizi veya verilerinizi etkileyebilir. Deyimleri çalıştırmadan önce dikkatlice inceleyin.
Çalıştırma modları
Betikler toplu iş modunda veya akış modunda çalışır. Veri kaynağınıza göre seçim yapın:
| Mod | Veri boyutu | Kullanım durumu |
|---|---|---|
| Toplu iş | Sınırlı (sabıt, sonlu) | Statik bir veri kümesinde sorgu çalıştırma; sınırlı kaynaklar için daha hızlıdır |
| Akış | Sınırlı veya sınırsız (sürekli, sonsuz) | Gerçek zamanlı veri akışlarını veya tanımlanmış bir sonu olmayan kaynakları işleme |
Akış moduna geçmek için sorgunuzdan önce bir SET deyimi ekleyin:
SET 'execution.runtime-mode' = 'streaming';
Betikler değişkenleri desteklemez.
Otomatik kaydetme
Betikler her dakika otomatik olarak kaydedilir. Manuel olarak kaydetmek için sağ üst köşedeki Save seçeneğine tıklayın ve bir dosya adı ile depolama konumu belirtin.
Ön koşullar
Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:
Bir Realtime Compute for Apache Flink çalışma alanına erişim
Ververica Runtime (VVR) 8.0.4 veya sonraki bir sürümü çalıştıran bir oturum kümesi. Böyle bir küme yoksa bir oturum kümesi oluşturun.
Betik oluşturma ve çalıştırma
Realtime Compute for Apache Flink konsoluna giriş yapın.
Çalışma alanınızın Actions sütununda Console seçeneğine tıklayın.
Development Console üzerinde Development > Scripts bölümüne gidin ve Scripts sekmesine tıklayın.
Bir betik oluşturmak için
simgesine tıklayın.-
SQL deyimlerinizi girin. Aşağıdaki örnekte bir MySQL kataloğu oluşturulmakta ve akış modunda bir tablo sorgulanmaktadır:
-- Create a MySQL catalog -- For parameter details, see: Create a MySQL catalog CREATE CATALOG mysql_catalog WITH( 'type' = 'mysql', 'hostname' = 'rm-bp1x********.mysql.rds.aliyuncs.com', 'port' = '3306', 'username' = 'db_user', 'password' = '${secret_values.mysqlpw}', 'default-database' = 'flinktest' ); -- Switch to streaming mode to query an unbounded source SET 'execution.runtime-mode' = 'streaming'; SELECT * FROM `mysql_catalog`.flinktest.orders;MySQL kataloğu oluşturma hakkında ayrıntılı bilgi için bkz. MySQL kataloğu oluşturma.
Sağ alt köşede Environment seçeneğine tıklayın ve VVR 8.0.4 veya sonraki bir sürümü çalıştıran bir oturum kümesi seçin.
Çalıştırmak istediğiniz deyimi veya deyimleri seçin ve ardından seçimin solundaki Run seçeneğine tıklayın.
(İsteğe bağlı) Sağ üst köşedeki Save seçeneğine tıklayın, ardından bir dosya adı ve depolama konumu belirtin.
SSS
Neden "Querying an unbounded table 'XXX' in batch mode is not allowed" hatasını alıyorum?
Kaynak tablo sınırsız bir akıştır; tanımlanmış bir sonu yoktur. Toplu iş modu yalnızca sınırlı (sonlu) veri kümeleriyle çalışır. Akış moduna geçmek için sorgunuzdan önce bir SET deyimi ekleyin:
SET 'execution.runtime-mode' = 'streaming';