1 Kasım 2022 Salı

Hazelcast SQL - Table-Valued Functions

Giriş
Açıklaması şöyle
Table-valued functions return tables of batch or streaming sources that you can use in SQL statements.
GENERATE_SERIES
Açıklaması şöyle
Returns a table that contains a series of numbers, starting from the start_number argument and ending with the stop_number arguments.
Örnek
Şöyle yaparız. 100 milyon satırı IMap'e yazar
CREATE MAPPING my_first_map 
  TYPE IMap 
  OPTIONS ('keyFormat'='varchar','valueFormat'='varchar');

INSERT INTO my_first_map
  SELECT CAST(v AS VARCHAR), CAST(v AS VARCHAR
    FROM (SELECT * FROM TABLE(generate_series(0,100000000)))
Örnek
Şöyle yaparız. v isimli bir sütun verir
SELECT * FROM TABLE(generate_series(1,3));
+------------+
|           v|
+------------+
|           1|
|           2|
|           3|
+------------+
Örnek
Şöyle yaparız. Burada key değeri birden başlıyor yüz bine kadar. value değeri hep sıfır
sql> CREATE MAPPING test_map TYPE IMap OPTIONS ('keyFormat'='int', 'valueFormat'='int');
OK
sql> insert into test_map select v, 0 from table(generate_series(1, 100000));
OK
sql> select count(*) from test_map;
+--------------------+
|              EXPR$0|
+--------------------+
|              100000|
+--------------------+
1 row(s) selected

GENERATE_STREAMS
Açıklaması şöyle
Returns a table that contains a stream of numbers, starting from 0 at a rate of numbers_per_second every second, without an upper bound
Örnek
Şöyle yaparız
SqlService sql = ...;
try (SqlResult result = sql.execute("SELECT * FROM TABLE(GENERATE_STREAM(5)) LIMIT 2")) {
  Iterator<SqlRow> rows = result.iterator();
  while (rows.hasNext()) {
    System.out.println("row :" + rows.next());
  }
}
Örnek
Şöyle yaparız. Burada CancellationException alırız
HazelcastInstance hz = ...

SqlResult result = hz.getSql().execute("SELECT * FROM TABLE(generate_stream(1))");
result.iterator().next();
result.close();



Hiç yorum yok:

Yorum Gönder

THIRD-PARTY.txt Dosyası

Kullanılan harici kütüphanelerin sürümleri bu dosyada Dosyanın yolu şöyle hazelcast/licenses/THIRD-PARTY.txt