19 Ekim 2022 Çarşamba

Hazelcast SQL - IMap İçin CREATE MAPPING Örnekleri

Giriş
  • Type= IMap olarak belirtilir
  • keyFormat olarak int, bigintjava, compact vs kullanılabilir
  • keyFormat=java ise  keyJavaClass=String, Long vs olabilir
  • valueFormat=json-flat ise value olarak basit json string verilir.
  • valueFormat=java ise valueJavaClass=String, com.foo.Bar olarak kullanırız. Böylece value nesnesine ait tüm property'ler için sütun yaratır
  • valueFormat=json-flat ise value olarak basit json string verilir.
Basit Tipler
Örnek 
Şöyle yaparız. Burada key ve value alanları simple bir type olduğu için __key ve this kullanılıyor. IMap<Integer,String> içindir
CREATE OR REPLACE MAPPING  foo (
  __key INT,
  this VARCHAR
) TYPE IMap
OPTIONS (
  'keyFormat' = 'int',
  'valueFormat' = 'varchar'
)
Bu durumda şöyle yaparız
SELECT __key, this from mymap;
INSERT INTO mymap (__key, this) VALUES (24, 'worker24';
Örnek 
Şöyle yaparız.  Burada sadece keyFormat ve valueFormat belirtiliyor. __key ve this kullanmaya gerek yok. IMap<Integer,Integer> içindir
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

COMPACT KEY ve COMPACT VALUE
Örnek 
Şöyle yaparız. Burada key ve value alanları simple bir type olmadığı için compact seçiliyor  IMap<Integer, Person> içindir
CREATE MAPPING my_map (
    id INT EXTERNAL NAME "__key.id",
    name VARCHAR,
    surname VARCHAR,
    age INT)
TYPE IMap
OPTIONS (
    'keyFormat' = 'compact',
    'keyCompactTypeName' = 'personId',
    'valueFormat' = 'compact',
    'valueCompactTypeName' = 'person'
)
JSON VALUE
Burada dikkat edilmesi gereken bir şey var. Şöyle bir Job çalıştıralım
CREATE JOB jdbc_to_imap AS SINK INTO foo SELECT id,id,name,ssn FROM bar
IMap için mapping yarattıktan sonra value nesnesi HazelcastJsonValue tipindendir.

Örnek
Şöyle yaparız. Burada sütunlar belirtiliyor IMap<Long, String> içindir
CREATE MAPPING trade_map (
  __key BIGINT,
  ticker VARCHAR,
  company VARCHAR,
  amount BIGINT)

TYPE IMap
OPTIONS (
  'keyFormat'='bigint',
  'valueFormat'='json-flat');
Örnek
Şöyle yaparız. Burada sütunlar belirtiliyor. key int, value is json-flat.  IMap<Long, String> içindir
CREATE MAPPING cities (
__key INT,
countries VARCHAR,
cities VARCHAR)
TYPE IMap
OPTIONS('keyFormat'='int', 'valueFormat'='json-flat');
Daha sonra şöyle yaparız
INSERT INTO cities VALUES
(1, 'United Kingdom','London'),
(2, 'United Kingdom','Manchester'),
(3, 'United States', 'New York'),
(4, 'United States', 'Los Angeles'),
(5, 'Turkey', 'Ankara'),
(6, 'Turkey', 'Istanbul'),
(7, 'Brazil', 'Sao Paulo'),
(8, 'Brazil', 'Rio de Janeiro');
JAVA VALUE
Örnek
Şöyle yaparız. Burada sütunlar belirtilmiyor. IMap<Long, String> içindir
CREATE MAPPING "data" EXTERNAL NAME "Patient"
  TYPE IMap
  OPTIONS (
    'keyFormat' = 'java',
    'keyJavaClass' = 'java.lang.Long'
    'valueFormat' = 'java'
    'valueJavaClass' = 'java.lang.String'
)
Örnek
Şöyle yaparız. Burada sütunlar belirtilmiyor. IMap<String, Patient> için
CREATE MAPPING "Patient" EXTERNAL NAME "Patient"
  TYPE IMap
  OPTIONS (
    'keyFormat' = 'java',
    'keyJavaClass' = 'java.lang.String'
    'valueFormat' = 'java'
    'valueJavaClass' = 'com.example.model.Patient'
)
Örnek
Şöyle yaparız. IMap<String,HashMap> içindir
CREATE MAPPING "m" 
TYPE IMap
OPTIONS (
  'keyFormat'='varchar',
  'valueFormat'='java',
  'valueJavaClass'='java.util.HashMap'
)

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