Lindorm Compute Engine ile sütun deposu ve geniş tablo verileri üzerinde SQL sorguları çalıştırabilirsiniz. Bu kılavuzda bir kaynak grubu oluşturma, bu gruba bağlanma ve ilk SQL ifadenizi çalıştırma adımları gösterilmektedir.
İş yükünüze en uygun kaynak grubu türünü seçin:
| Kaynak grubu türü | Arayüz | En uygun olduğu durumlar |
|---|---|---|
| OLAP | MySQL uyumlu SQL | Etkileşimli sorgular, yüksek eşzamanlılık gerektiren analizler, düşük gecikme süreli yanıtlar |
| ETL | Spark SQL (sunucusuz) | Toplu iş dönüşümleri, karmaşık hesaplamalar, seyrek veya çevrimdışı işler |
Ön koşullar
Başlamadan önce aşağıdakilerin tamamlandığından emin olun:
LindormTable etkinleştirildi. Bkz. Örnek oluşturma
Lindorm Compute Engine etkinleştirildi. Bkz. Hizmeti etkinleştirme
İstemci IP adresiniz Lindorm izin listesine eklendi. Bkz. İzin listesi ayarlama
OLAP kaynak grubu kullanma
Çevrimiçi Analitik İşleme (OLAP) kaynak grubu, MySQL uyumlu bir arayüz sağlar. Oluşturulduktan sonra yüksek eşzamanlılık ve düşük gecikme süresi gerektiren analitik sorgular için özel hesaplama düğümleri tahsis edilir.
1. Adım: Bir OLAP kaynak grubu oluşturma
Lindorm konsolu üzerinden oturum açın. Sol üst köşeden örneğinizin bulunduğu bölgeyi seçin. Instances sayfasında örnek kimliğine tıklayın veya Actions sütunundaki View Instance Details seçeneğine tıklayın.
-
Instance Details sayfasında Configurations bölümüne gidin ve Compute Engine sütununda Resource Groups öğesine tıklayın.

-
Resource Group Details sayfasında Create Resource Group seçeneğine tıklayın ve aşağıdaki parametreleri ayarlayın:
Parametre Açıklama Resource Group Type OLAP seçin. Resource Group Name Yalnızca küçük harfler ve rakamlar; en fazla 63 karakter. Örnek: cg0Node Specifications Hesaplama düğümü teknik özelliklerini seçin. Working Nodes in Job İş başına çalışan düğüm sayısı. Geçerli değerler: [4, 1024]. Varsayılan: 4 -
OK seçeneğine tıklayın.
Kaynak grubu oluşturma yaklaşık 20 dakika sürer.
-
Resource Group Details sayfasında Status and Description altında durumun Running olarak gösterilmesini bekleyin. Sanal Özel Cloud (VPC) iç uç noktasını almak için kaynak grubu adının üzerine gelin:
jdbc:mysql://ld-bp1dv48fk0yg0****-olap-proxy-ldps.lindorm.aliyuncs.com:9030 -
MySQL istemcisini yapılandırma adımlarını tamamlayın, ardından LindormTable kullanıcı adınız ve parolanızla OLAP kaynak grubuna bağlanın:
mysql -hld-bp1dv48fk0yg0****-olap-proxy-ldps.lindorm.aliyuncs.com -P9030 -uroot -p
2. Adım: Verilere erişme
OLAP kaynak grubu, veri kaynaklarını tanımlamak için iki katalog kullanır:
| Katalog | Veri kaynağı | Varsayılan |
|---|---|---|
lindorm_columnar |
Sütun deposu (Iceberg uyumlu veri gölü) | Evet — MySQL üzerinden bağlandığınızda otomatik olarak seçilir |
lindorm_table |
Geniş tablolar (LindormTable) | Hayır — SET CATALOG lindorm_table; komutuyla açıkça geçiş yapın |
Sütun deposu verilerine erişme
Sütun deposu, Iceberg ekosistemiyle uyumlu, sütunsal depolama üzerine inşa edilmiş bir veri gölüdür. Veriler Lindorm örneğinin dosya motorunda saklanır.
lindorm_columnar kataloğu varsayılan olarak seçilidir. Buna açıkça geçiş yapmak için şu komutu çalıştırın:
SET CATALOG lindorm_columnar;
Aşağıdaki adımlarda bir veritabanı oluşturma, veri yazma ve örnek sorgular çalıştırma işlemleri gösterilmektedir.
-
Bir veritabanı oluşturun ve kullanın.
-- Create a database. CREATE DATABASE olapdemo; -- Use the database. USE olapdemo; -
Bir tablo oluşturun ve veri yazın.
-- Create a table. CREATE TABLE test (id INT, name STRING) ENGINE = iceberg; -- Insert data. INSERT INTO test VALUES (0, 'Jay'), (1, 'Edison'); -
Verileri sorgulayın. Örnek 1 — koşula göre filtreleme:
SELECT id, name FROM test WHERE id != 0;Sonuç:
+------+--------+ | id | name | +------+--------+ | 1 | Edison | +------+--------+Örnek 2 — toplama:
SELECT count(distinct name) FROM test;Sonuç:
+----------------------+ | count(DISTINCT name) | +----------------------+ | 2 | +----------------------+Örnek 3 — birleştirme:
SELECT * FROM (SELECT id, name FROM test WHERE id != 0) t0 JOIN (SELECT id, name FROM test WHERE id != 2) t1 ON t0.id = t1.id;Sonuç:
+------+--------+------+--------+ | id | name | id | name | +------+--------+------+--------+ | 1 | Edison | 1 | Edison | +------+--------+------+--------+ -
Temizlik yapın.
DROP TABLE test; DROP DATABASE olapdemo;
Geniş tablo verilerine erişme
OLAP kaynak grubu, özel hesaplama düğümlerini kullanarak LindormTable verilerini sorgulayabilir. Yalnızca okuma işlemleri desteklenir; OLAP kaynak grubu aracılığıyla LindormTable üzerinde tablo oluşturamaz veya veri yazamazsınız.
Sorgulamadan önce geniş tablo kataloğuna geçiş yapın:
SET CATALOG lindorm_table;
Zaten bir geniş tablonuz varsa sorgulama adımlarına geçin. Aksi takdirde LindormTable'a bağlanın ve örnek bir tablo oluşturun:
-- Create a database.
CREATE DATABASE test;
-- Use the database.
USE test;
-- Create a table and insert two rows.
CREATE TABLE tb (id varchar, name varchar, address varchar, primary key(id, name));
UPSERT INTO tb (id, name, address) VALUES ('001', 'Jack', 'hz');
UPSERT INTO tb (id, name, address) VALUES ('002', 'Edison', 'bj');
OLAP kaynak grubuna bağlı MySQL komut satırı arabiriminde (CLI) aşağıdaki adımları uygulayın.
-
Veri kaynağını değiştirin ve veritabanını seçin.
-- Switch to the wide table catalog. SET CATALOG lindorm_table; -- Use the test database. USE test; -
Geniş tablo verilerini sorgulayın. Örnek 1 — satırları getirme:
SELECT * FROM tb LIMIT 5;Sonuç:
+------+--------+---------+ | id | name | address | +------+--------+---------+ | 001 | Jack | hz | | 002 | Edison | bj | +------+--------+---------+Örnek 2 — satır sayısını hesaplama:
SELECT count(*) FROM tb;Sonuç:
+----------+ | count(*) | +----------+ | 2 | +----------+
ETL kaynak grubu kullanma
Çıkarma, dönüştürme ve yükleme (ETL) kaynak grubu, sunucusuz bir Spark SQL arayüzü sağlar. Kaynaklar talep üzerine tahsis edilir ve otomatik olarak serbest bırakılır. Bu yapı, seyrek sorgular, toplu iş dönüşümleri ve çevrimdışı raporlama için uygundur.
1. Adım: Kaynak grubunu etkinleştirme
Lindorm konsolu üzerinden oturum açın. Sol üst köşeden örneğinizin bulunduğu bölgeyi seçin. Instances sayfasında örnek kimliğine tıklayın veya Actions sütunundaki View Instance Details seçeneğine tıklayın.
-
Instance Details sayfasında Configurations bölümüne gidin ve Compute Engine sütununda Resource Groups öğesine tıklayın.

-
Resource Group Details sayfasında Create Resource Group seçeneğine tıklayın ve aşağıdaki parametreleri ayarlayın:
Parametre Açıklama Resource Group Type ETL seçin. Resource Group Name Yalnızca küçük harfler ve rakamlar; en fazla 63 karakter. Örnek: cg0Daily Resource Quota Kaynak grubunun günlük tüketebileceği maksimum CU saati (birim: CU*Hour). Varsayılan:100000. Limit olmaması için0olarak ayarlayın.ÖnemliBu limit aşılırsa işler anında silinir. Üretim iş yükleri için beklenmeyen iş sonlandırmalarını önlemek amacıyla bu değeri
0olarak ayarlayın.Maximum CPU cores Kaynak grubu için maksimum CPU çekirdek sayısı. Geçerli değerler: [100, 100000]. Maximum memory Kaynak grubu için maksimum bellek. Geçerli değerler: [400 GB, 1000000 GB]. Varsayılan değer yoktur. Authorize users Kaynak grubuna erişmesine izin verilen kullanıcılar. Varsayılan: *(tüm kullanıcılar). Kaynak grubunu oluşturmak için OK seçeneğine tıklayın.
2. Adım: Ortamı hazırlama
Aşağıdaki adımları Lindorm örneğinizle aynı VPC içinde bulunan bir Elastic Compute Service (ECS) örneğinde çalıştırın.
Java Development Kit (JDK) 1,8 veya sonraki bir sürümü yükleyin.
Spark paketini indirin ve sıkıştırılmış dosyayı açın.
-
SPARK_HOMEortam değişkenini paketin açıldığı dizine ayarlayın.export SPARK_HOME=/path/to/spark/ -
$SPARK_HOME/conf/beeline.confdosyasını düzenleyin ve aşağıdaki parametreleri yapılandırın:Parametre Açıklama endpointLindorm compute engine Java Database Connectivity (JDBC) URL'si. Bkz. Uç noktaları görüntüleme. userLindormTable kullanıcı adı. passwordLindormTable parolası. shareResourceAynı kullanıcı için oturumlar arasında hesaplama kaynaklarının paylaşılıp paylaşılmayacağı. Varsayılan: true.compute-groupETL kaynak grubunun adı. Varsayılan: default. -
$SPARK_HOME/bindizinine gidin ve etkileşimli oturumu başlatın:Boştaki oturumlar 4 saat sonra otomatik olarak serbest bırakılır. Çalışan işleri izlemek için başlatma çıktısında gösterilen küme URL'sini kullanarak Spark UI adresine erişin.
./beelineBağlantı başarılı olduğunda aşağıdaki çıktı görüntülenir:
Welcome to Lindorm Distributed Processing System (LDPS) !!! Initializing environment. It might take minutes ... Environemnt prepared. You may visit your jdbc cluster by below url: http://alb-boqak6zfns5gzx****.cn-hangzhou.alb.aliyuncsslb.com/proxy/75ce76086b61470da7046bd4c2b7**** Please note -- you are sharing this JDBC cluster between SQL sessions from the same user. The cluster will be released by auto if idle for 4 hours. You may also kill it manually by visiting above web url and clicking 'kill' in tab of 'Query Engine' lindorm-beeline>
3. Adım: Verilere erişme
Aşağıdaki tüm örnekler lindorm-beeline> oturumunda Spark SQL kullanır. lindorm_columnar kataloğu varsayılan olarak seçilidir. Veri kaynakları arasında geçiş yapmak için SET CATALOG komutunu kullanın.
Sütun deposu verilerine erişme
Sütun deposu, Iceberg ekosistemiyle uyumlu, sütunsal depolama üzerine inşa edilmiş bir veri gölüdür. Veriler Lindorm örneğinin dosya motorunda saklanır. Bu verilere yazmak ve bunları sorgulamak için Spark SQL kullanabilirsiniz.
lindorm_columnar kataloğu varsayılan olarak seçilidir. Buna açıkça geçiş yapmak için şu komutu çalıştırın:
SET CATALOG lindorm_columnar;
Aşağıdaki adımlarda bir veritabanı oluşturma, veri yazma ve örnek sorgular çalıştırma işlemleri gösterilmektedir.
-
Bir veritabanı oluşturun ve kullanın.
-- Create a database. CREATE DATABASE etldemo; -- Use the database. USE etldemo; -
Bir tablo oluşturun ve veri yazın.
-- Create a table. CREATE TABLE test (id INT, name STRING); -- Insert data. INSERT INTO test VALUES (0, 'Jay'), (1, 'Edison'); -
Verileri sorgulayın. Örnek 1 — koşula göre filtreleme:
SELECT id, name FROM test WHERE id != 0;Sonuç:
+------+--------+ | id | name | +------+--------+ | 1 | Edison | +------+--------+Örnek 2 — toplama:
SELECT count(distinct name) FROM test;Sonuç:
+----------------------+ | count(DISTINCT name) | +----------------------+ | 2 | +----------------------+Örnek 3 — birleştirme:
SELECT * FROM (SELECT id, name FROM test WHERE id != 0) t0 JOIN (SELECT id, name FROM test WHERE id != 2) t1 ON t0.id = t1.id;Sonuç:
+------+--------+------+--------+ | id | name | id | name | +------+--------+------+--------+ | 1 | Edison | 1 | Edison | +------+--------+------+--------+ -
Temizlik yapın.
DROP TABLE test; DROP DATABASE etldemo;
Geniş tablo verilerine erişme
ETL kaynak grubundaki Spark SQL bağlantıları, esnek hesaplama kaynaklarını kullanarak LindormTable verilerini sorgulayabilir. Bu bağlantı üzerinden LindormTable için CREATE TABLE veya DROP TABLE gibi Veri Tanımlama Dili (DDL) ifadeleri desteklenmez. Yalnızca sorgulama ve hesaplama işlemleri için kullanın.
Sorgulamadan önce geniş tablo kataloğuna geçiş yapın:
SET CATALOG lindorm_table;
Zaten bir geniş tablonuz varsa sorgulama adımlarına geçin. Aksi takdirde LindormTable'a bağlanın ve örnek bir tablo oluşturun:
-- Create a database.
CREATE DATABASE test;
-- Use the database.
USE test;
-- Create a table and insert two rows.
CREATE TABLE tb (id varchar, name varchar, address varchar, primary key(id, name));
UPSERT INTO tb (id, name, address) VALUES ('001', 'Jack', 'hz');
UPSERT INTO tb (id, name, address) VALUES ('002', 'Edison', 'bj');
lindorm-beeline oturumunda aşağıdaki adımları uygulayın.
-
Veri kaynağını değiştirin ve veritabanını seçin.
-- Switch to the wide table catalog. SET CATALOG lindorm_table; -- Use the test database. USE test; -
Geniş tablo verilerini sorgulayın. Örnek 1 — satırları getirme:
SELECT * FROM tb LIMIT 5;Sonuç:
+------+--------+---------+ | id | name | address | +------+--------+---------+ | 001 | Jack | hz | | 002 | Edison | bj | +------+--------+---------+Örnek 2 — satır sayısını hesaplama:
SELECT count(*) FROM tb;Sonuç:
+-----------+ | count(1) | +-----------+ | 2 | +-----------+
Sonraki adımlar
Uç noktaları görüntüleme — kaynak grubunuz için JDBC URL'sini ve bağlantı ayrıntılarını bulun
Spark UI — ETL kaynak grubunuzda çalışan Spark işlerini izleyin