1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

こちらの機能を試してみます。

ギリシャ語と英語を含むテーブルを作ります。

CREATE TABLE users.takaaki_yayoi.HeroNames (
    GreekName STRING COLLATE EL_AI,
    EnglishName STRING COLLATE UTF8_LCASE
);
INSERT INTO users.takaaki_yayoi.HeroNames (GreekName, EnglishName)
VALUES 
    ('Ἀχιλλεύς', 'Achilles'),
    ('Ἀγαμέμνων', 'Agamemnon'),
    ('Ὀδυσσεύς', 'Odysseus'),
    ('Διομήδης', 'Diomedes'),
    ('Αἴας ὁ Μέγας', 'Ajax the Greater'),
    ('Αἴας ὁ Λοκρός', 'Ajax the Lesser'),
    ('Μενέλαος', 'Menelaus'),
    ('Νέστωρ', 'Nestor'),
    ('Πάτροκλος', 'Patroclus'),
    ('Ἰδομενεύς', 'Idomeneus'),
    ('Ἕκτωρ', 'Hector'),
    ('Αἰνείας', 'Aeneas'),
    ('Πάρις', 'Paris'),
    ('Σαρπηδών', 'Sarpedon'),
    ('Γλαῦκος', 'Glaucus'),
    ('Πολυδάμας', 'Polydamas'),
    ('Πάνδαρος', 'Pandarus'),
    ('Δηίφοβος', 'Deiphobus'),
    ('Ἀντήνωρ', 'Antenor'),
    ('Αἰσύητης', 'Aesyetes');

カタログエクスプローラではタイプでコレーションを確認できます。サンプルデータを表示する際には、Databricksランタイム16.1以降のクラスターを使うようにしてください。SQLウェアハウスではまだコレーションがサポートされていないので、SQLウェアハウスでコレーションが指定されているテーブルを表示しようとすると、未サポートのエラーになります。

Screenshot 2025-01-19 at 15.30.04.png
Screenshot 2025-01-19 at 15.31.21.png

サポートされているコレーションを確認します。

SELECT * FROM collations()

日本語もサポートされています。あとで試します。

Screenshot 2025-01-19 at 15.31.57.png

統計情報を更新します。

ANALYZE TABLE users.takaaki_yayoi.HeroNames COMPUTE STATISTICS FOR COLUMNS GreekName, EnglishName;

大文字小文字を区別しない(CASE_INSENSITIVE)検索を行います。

SELECT * FROM users.takaaki_yayoi.HeroNames WHERE EnglishName = 'achilles';

大文字のAchillesがヒットしました。もうlowerは不要なんですね。

Screenshot 2025-01-19 at 15.33.12.png

ギリシャ語でソートします。

SELECT * FROM users.takaaki_yayoi.HeroNames ORDER BY GreekName;

英語のアルファベット順ではないことはわかります(ギリシャ語わかりません)。

Screenshot 2025-01-19 at 15.34.08.png

アクセント文字の区別をしないACCENT_INSENSITIVEな検索を行います。

SELECT * FROM users.takaaki_yayoi.HeroNames WHERE GreekName = 'Αγαμεμνων';

小さいですがアクセント文字があるἈγαμέμνωνがヒットしていることがわかります。

Screenshot 2025-01-19 at 15.35.09.png

日本語でも挙動を見てみます。こちらを参考にさせていただきました。日本語における濁点、半濁点はアクセント文字とのことです。

文字列上、は違うので以下はfalseになります。

SELECT 'は' = 'ば' AS comparison_result;

Screenshot 2025-01-19 at 15.36.51.png

アクセント文字を区別しないで照合します。

SELECT 'は' = 'ば' COLLATE ja_AI AS comparison_result;

同じと見なされました。

Screenshot 2025-01-19 at 15.37.29.png

大文字小文字も見てみます。以下はfalseになります。

SELECT 'あ' = 'ぁ' AS comparison_result;

大文字小文字を区別せず(CASE_INSENSITIVE)に照合させます。

SELECT 'あ' = 'ぁ' COLLATE ja_CI AS comparison_result;

同じと見なされました。

Screenshot 2025-01-19 at 15.39.51.png

まもなく、SQLウェアハウスでもコレーションが使えるようになるとのことです。たげんごをしょりするじょうきょうにおいてm文字列操作の幅が広がる機能ですので是非ご活用ください!

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?