Hologres, veritabanınıza vektör hesaplama ve coğrafi analizden izin yönetimi ve veri maskelemeye kadar çeşitli özel yetenekler kazandıran yerleşik bir uzantı kümesini destekler. Bu sayfada desteklenen tüm uzantılar listelenmekte ve bunların nasıl yükleneceği, görüntüleneceği ve kaldırılacağı açıklanmaktadır.
Desteklenen uzantılar | Uzantı yükleme | Yüklenen uzantıları görüntüleme | Uzantı kaldırma | SSS
Sınırlamalar
Bir uzantı, veritabanı başına yalnızca tek bir ad alanına yüklenebilir. Örneğin, bir uzantıyı varsayılan ad alanına yüklemek, aynı veritabanındaki başka bir ad alanına yüklemenizi engeller.
Uzantının veritabanındaki tüm ad alanlarında kullanılabilir olması için
pg_catalogsistem ad alanına yükleyin. Herhangi bir ad alanı belirtilmezse uzantı varsayılan olarakpublicad alanına yüklenir.Yalnızca Superuser izinlerine sahip hesaplar uzantı yükleyebilir veya kaldırabilir.
Şu anda yalnızca yerleşik sistem uzantıları desteklenmektedir. Özel veya harici uzantılar yüklenemez.
Desteklenen uzantılar
| Uzantı | Açıklama | Ad alanı kısıtlaması | Yükleme komutu |
|---|---|---|---|
spm, slpm |
Basit İzin Modeli'ni (SPM) veya şema düzeyinde Basit İzin Modeli'ni (SLPM) etkinleştirir. Bkz. SPM Kullanma ve SLPM Kullanma. | Varsayılan olarak hologres ad alanına yüklenir. Ad alanı değiştirilemez. | CREATE EXTENSION IF NOT EXISTS spm; |
hive_compatible |
get_json_object() işlevini ekler. Bkz. JSON işlevleri. |
pg_catalog ad alanına yüklenmelidir. | CREATE EXTENSION IF NOT EXISTS hive_compatible SCHEMA pg_catalog; |
hologres_fdw |
Veritabanları arası sorguları etkinleştirir (Beta). Bkz. Veritabanları arası sorgular. | Yalnızca özel örnekler. pg_catalog ad alanına yüklenmelidir. | CREATE EXTENSION IF NOT EXISTS hologres_fdw SCHEMA pg_catalog; |
dlf_fdw |
DLF (Data Lake Formation) aracılığıyla OSS verilerini okur. Bkz. DLF tabanlı OSS veri göllerine erişimi hızlandırma. | pg_catalog ad alanına yüklenmelidir. | CREATE EXTENSION IF NOT EXISTS dlf_fdw SCHEMA pg_catalog; |
proxima |
Proxima vektör hesaplamayı etkinleştirir. Bkz. Proxima vektör hesaplama. | Yalnızca özel örnekler. pg_catalog ad alanına yüklenmelidir. | CREATE EXTENSION IF NOT EXISTS proxima SCHEMA pg_catalog; |
flow_analysis |
Kullanıcı segmentasyonu ve huni analizi işlevlerini ekler. Bkz. Huni işlevleri ve Kullanıcı segmentasyonu işlevleri. | Varsayılan olarak public ad alanına yüklenir. Yalnızca public ad alanına yüklenebilir. | CREATE EXTENSION IF NOT EXISTS flow_analysis; |
roaringbitmap |
Roaring Bitmap (RB) işlevlerini ekler. Bkz. RoaringBitmap işlevleri. | Yalnızca özel örnekler. Varsayılan olarak public ad alanına yüklenir. Yalnızca public ad alanına yüklenebilir. | CREATE EXTENSION IF NOT EXISTS roaringbitmap; |
hg_binlog |
Hologres Binlog verilerini tüketmeyi etkinleştirir. Bkz. JDBC kullanarak Hologres Binlog verilerini tüketme. | Yalnızca özel örnekler. Varsayılan olarak hologres ad alanına yüklenir. Ad alanı değiştirilemez. | CREATE EXTENSION IF NOT EXISTS hg_binlog; |
postgis |
PostGIS coğrafi işlevlerini ekler. Bkz. PostGIS coğrafi işlevleri. | Yalnızca özel örnekler. pg_catalog ad alanına yüklenmelidir. | CREATE EXTENSION IF NOT EXISTS postgis SCHEMA pg_catalog; |
clickhouse |
Geçiş için ClickHouse ile uyumlu işlevler ekler. Bkz. ClickHouse'tan veri aktarma. | Yalnızca özel örnekler. Varsayılan olarak public ad alanına yüklenir. Yalnızca public ad alanına yüklenebilir. | CREATE EXTENSION IF NOT EXISTS clickhouse; |
pgcrypto |
GEN_RANDOM_UUID işlevini ekler. Bkz. Rastgele veri işlevleri. |
pg_catalog ad alanına yüklenmelidir. | CREATE EXTENSION IF NOT EXISTS pgcrypto SCHEMA pg_catalog; |
bsi |
Bit Slice Index (BSI) işlevlerini ekler. Bkz. BSI işlevleri. | Varsayılan olarak public ad alanına yüklenir. Yalnızca public ad alanına yüklenebilir. | CREATE EXTENSION IF NOT EXISTS bsi; |
hg_anon |
Veri maskelemeyi etkinleştirir. Bkz. Veri maskeleme. | Yalnızca pg_catalog ad alanına yüklenebilir. | CREATE EXTENSION IF NOT EXISTS hg_anon SCHEMA pg_catalog; |
mysql_compatible |
MySQL ile uyumlu işlevler ekler. Bkz. MySQL ile uyumlu işlevler. | Varsayılan olarak hologres ad alanına yüklenir. Ad alanı değiştirilemez. | CREATE EXTENSION IF NOT EXISTS mysql_compatible; |
Uzantı yükleme
Bir uzantıyı pg_catalog ad alanına yüklemek, bunun veritabanındaki tüm ad alanlarında kullanılabilir olmasını sağlar. Uzantıyı başka bir ad alanına yüklerseniz işlevlerine yalnızca o ad alanının search_path değeri dahilinde erişilebilir.
Bazı uzantılar yalnızca belirli bir ad alanına yüklenebilir. Yükleme komutunu çalıştırmadan önce yukarıdaki tabloda bulunan Schema constraint sütununu kontrol edin.
-- Requires Superuser permissions
CREATE EXTENSION IF NOT EXISTS <extension_name> SCHEMA <schema_name>;
| Parametre | Açıklama |
|---|---|
extension_name |
Uzantının adı. Geçerli değerler için desteklenen uzantılar tablosuna bakın. |
schema_name |
Uzantının yükleneceği ad alanı. Veritabanı genelinde kullanılabilirlik için pg_catalog kullanın. Belirtilmezse varsayılan olarak public değerini alır. |
Örnek: postgis uzantısını pg_catalog ad alanına yükleyin:
CREATE EXTENSION IF NOT EXISTS postgis SCHEMA pg_catalog;
Geçerli veritabanındaki yüklenen uzantıları görüntüleme
Varsayılan olarak yüklenenler de dahil olmak üzere geçerli veritabanında yüklenen tüm uzantıları listelemek için aşağıdaki sorguyu çalıştırın:
SELECT
e.extname AS "Name",
e.extversion AS "Version",
n.nspname AS "Schema",
c.description AS "Description"
FROM
pg_catalog.pg_extension e
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = e.extnamespace
LEFT JOIN pg_catalog.pg_description c ON c.objoid = e.oid
AND c.classoid = 'pg_catalog.pg_extension'::pg_catalog.regclass
ORDER BY 1;
Uzantı kaldırma
DROP EXTENSION <extension_name> CASCADE komutunu kullanmayın. CASCADE seçeneği, PostGIS, RoaringBitmap, Proxima, Binlog ve BSI verileri ile meta veriler, tablolar, görünümler ve sunucu verileri dahil olmak üzere uzantıya bağımlı tüm nesneleri siler.
-- Requires Superuser permissions
DROP EXTENSION <extension_name>;
| Parametre | Açıklama |
|---|---|
extension_name |
Kaldırılacak uzantının adı. Geçerli değerler için desteklenen uzantılar tablosuna bakın. |
Örnek: Ad alanları arasında bir uzantıyı sorgulama
roaringbitmap gibi bazı uzantılar yalnızca public ad alanına yüklenebilir. Tablonuz farklı bir ad alanında bulunuyorsa RB işlevini ad alanı ön eki olmadan çağırmak function xxx does not exist hatasıyla başarısız olur. Bu sorunu çözmek için işlevin önüne public. ekini getirin.
Aşağıdaki örnek sorunu ve çözümü göstermektedir.
-
publicdışı bir ad alanında tablo oluşturun ve verilerle doldurun.CREATE EXTENSION roaringbitmap; CREATE SCHEMA test; -- Create a table in the test schema CREATE TABLE test.t1 ( id integer, bitmap roaringbitmap ); -- Insert a bitmap from an array INSERT INTO test.t1 SELECT 1, RB_BUILD(ARRAY[1, 2, 3, 4, 5, 6, 7, 8, 9, 200]); -- Insert a bitmap aggregated from a series INSERT INTO test.t1 SELECT 2, RB_BUILD_AGG(e) FROM GENERATE_SERIES(1, 100) e; -
search_pathdeğeripublicolarak ayarlanmışken RB işlevini kullanarak sorgulama yapın. Sorgu başarılı olur.SELECT RB_OR(a.bitmap, b.bitmap) FROM (SELECT bitmap FROM test.t1 WHERE id = 1) AS a, (SELECT bitmap FROM test.t1 WHERE id = 2) AS b; -
search_pathdeğerinitestad alanına değiştirin ve aynı sorguyu çalıştırın. Sorgu başarısız olur.SET search_path TO test; SELECT RB_OR(a.bitmap, b.bitmap) FROM (SELECT bitmap FROM test.t1 WHERE id = 1) AS a, (SELECT bitmap FROM test.t1 WHERE id = 2) AS b; -- ERROR: function rb_or(public.roaringbitmap, public.roaringbitmap) does not exist -
İşlevi doğru ad alanından çağırmak için önüne
public.ekini getirin.SELECT public.RB_OR(a.bitmap, b.bitmap) FROM (SELECT bitmap FROM test.t1 WHERE id = 1) AS a, (SELECT bitmap FROM test.t1 WHERE id = 2) AS b;
SSS
Bir uzantı yanlış ad alanına yüklendi. Ad alanlarını değiştirdikten sonra işlevlerine erişilemiyor ve function xxx does not exist hatası döndürülüyor.
Bu durum, bir uzantı public ad alanına yüklendiğinde ancak etkin search_path artık public değerini içermediğinde meydana gelir. Uzantıyı CASCADE olmadan kaldırın ve ardından tüm ad alanlarından erişilebilir hale getirmek için pg_catalog ad alanına yeniden yükleyin:
DROP EXTENSION hologres_fdw;
CREATE EXTENSION IF NOT EXISTS hologres_fdw SCHEMA pg_catalog;