Duże obiekty (loby) to te kolekcje typów danych, które są tworzone tak, aby zawierały dużą ilość danych do maksymalnego rozmiaru, który wynosi od 8 terabajtów do 128 terabajtów. Zależy to głównie od konfiguracji bazy danych.
Dlaczego duże obiekty są używane w PostgreSQL
Wyjaśnimy różne typy danych, które są odpowiednie dla dużych obiektów i ich cel tworzenia.
Składnia
# Utwórz tabelę Table_name (name_of_column1 data_type, name_of_column2 data_type, name_of_columnn bytea);Tabela dla dużego obiektu jest tworzona z typem danych określonej kolumny z bytea lub kroplą do przechowywania wartości dla dużego obiektu, takiego jak obrazy lub filmy.
Realizacja
Utworzymy tabelę z typem danych BLOB w kolumnie, podczas gdy inne kolumny mają typy danych liczb całkowitych i varchar. Ale po wykonaniu zapytania powoduje to błąd, pokazując, że typ „Blob” nie istnieje.
>> Utwórz tabelę tbl_blob (TBL_BLOB BLOB, ID INTEGER, Nazwa varchar (10), adres varchar (10));Ponownie utworzymy te same atrybuty tabeli, mając pierwszą kolumnę z typem danych „bytea”. Jest to również typ zmiennej danych typu BLOB. Korzystając z tego, możemy przywrócić dane typu binarnego w PostgreSQL.
>> Utwórz tabelę tbl_blob (tbl_blob bytea, identyfikator liczby całkowitej, nazwa varchar (10), adres varchar (10));Dokonano tego, aby pokazać różnicę w użyciu Blob i Byta. Najczęściej BLOB nie jest kompatybilny z niektórymi wersjami PostgreSQL; Dlatego używamy Bytea w poleceniu.
Nowa tabela próbek zostanie utworzona ponownie, aby przetestować użycie dużego obiektu. Utworzono tabelę o nazwie TBL_BLOB1.
>> Utwórz tabelę TBL_BLOB1 (TBL_BLOB BYTEA, ID INTEGER, Nazwa Varchar (10), Adres Varchar (10), klasavarchar (10)); [/cc]
Po utworzeniu tabeli zobaczymy opis tabeli, aby zwrócić uwagę na typ pamięci i typów kolumn.
>> \ D+ TBL_BLOL1;Na powyższym obrazie można zobaczyć, że nazwy kolumn i typ danych są wyświetlane. Metodą zastosowaną do dostępu do tego opisu jest sort. Aby wyjaśnić użycie dużych obiektów w więcej niż jednej kolumnie, ponownie utworzymy tabelę. Ta tabela będzie zawierać więcej niż jedną kolumnę z dużym typem danych obiektów.
>> Utwórz tabelę tbl_blob2 (tbl_blob bytea, tbl1_blob bytea, tbl2_blob bytea, identyfikator liczby całkowitej, nazwa varchar (10), adres varchar (10), klasa varchar (10));Po stworzeniu ponownie użyj polecenia napisanego poniżej, aby zobaczyć opis tabeli.
>> \ d+ tbl_blob2;Do tej pory widzieliśmy użycie kropki podczas tworzenia stołu. Ale aby dodać nową kolumnę z typem danych BYTEA i BLOB, potrzebujemy polecenia aktualizacji. W tabeli TBL_BLOB1 dodaliśmy kolumnę o nazwie TBL1_BLOB, która ma typ danych BYTEA.
>> Zmień tabelę tbl_blob1 Dodaj kolumnę tbl1_blob bytea;Tworzenie dużych obiektów w PostgreSQL
Istnieje funkcja, aby utworzyć duży obiekt.
# Oid lo_creat (pgconn *con, int tryb int);W tej funkcji „tryb” to maska bitowa używana do opisania różnych atrybutów nowo utworzonego obiektu. Podczas gdy stałe użyte w funkcji są obecne w bibliotece pliku nagłówka libpq-fs. Tutaj stosujemy przykładowy przykład tworzenia dużych obiektów, w którym wartość jest zwracana i akceptowana przez zmienną.
# inv_oid = lo_creat (inv_read | inv_write);Odczyt i zapis to typy dostępu używane w funkcji. Argument „-1” jest używany jako parametr funkcji lo_creat () do utworzenia dużego obiektu w danym przykładzie. Służy to do stworzenia nowego dużego, pustego, pokazującego indeks null.
>> Wybierz lo -_creat (-1);Losową wartość jest przydzielana przez PostgreSQL. Aby zapewnić określoną wartość do utworzenia dużego obiektu, podajemy wartość naszego wyboru w parametrze.
>> Wybierz lo_create (9945621);Importować duży obiekt
Jeśli chcesz zaimportować plik obecny w dowolnym katalogu systemu operacyjnego jako duży obiekt, można tego użyć jako wywołanie funkcji.
# Oid lo_import (pgconn *conn, const char *name_of_file);Name_of_file to konkretny plik, który chcesz zaimportować z systemu jako duży obiekt. Wartość OID przypisana do nowego dużego obiektu jest wartością zwróconą.
Wyeksportuj duży obiekt
W przeciwieństwie do importu, duże obiekty można również wyeksportować do systemu operacyjnego. Wykonane jest wywołanie funkcji w celu wyeksportowania dużego obiektu.
# Int lo_export (PGCON *CONN, OID LOBJID, CONTAL CHAR *Name_of_file);OID jest pokazany przez Lobjid. OID jest określony dla obiektu, który należy wyeksportować z PostgreSQL do systemu operacyjnego. Argument nazwy pliku jest taki, że określa nazwę systemu operacyjnego. Duży identyfikator obiektu jest tworzony w celu obsługi eksportu pliku z PostgreSQL do systemu operacyjnego.
Otwórz duży obiekt, który już istnieje w PostgreSQL
Jeśli chcesz otworzyć duże szczegóły obiektów, które są już obecne i utworzone wcześniej w PostgreSQL, wówczas używana jest następująca funkcja.
# Int lo_open (pgcon *con, oid lojid, int tryb);Duży obiekt jest otwarty w dowolnym celu, takich jak czytanie lub pisanie lub dla obu aktualizacji można wykonać. „lo_open” zmienna typu liczb całkowitych zwraca duży obiekt do późniejszego użycia w lo_write, lo_read lub lo_close.
Pisanie/czytanie danych do/z dużego obiektu
Zapisz dane do dużego obiektu
# Int lo_write (pgcon *conn, int fx, const char *buffr, size_t Lenn);Duży obiekt FX służy do pisania na długości Lenn z buffera Buffr. Bajty, które są pisane, są zwracane. Jeśli wartość zwracania jest ujemna, oznacza to, że wystąpił błąd.
Odczyt dane
# Int lo_read (pgconn *con, int fx, char *buffr, size_t Lenn);Ta funkcja odczytuje bajty długości Lenn dużego obiektu w buforze bufora. Wartość jest zwracana według procesu pisania.
Duże usunięcie obiektu
>> int lo_unlink (pgconn *con, oid lobjid);Użyliśmy poniżej cytowanego przykładu za pomocą polecenia Select z numerem OID. „Lo_unlink” służy do usuwania OID.
>> Wybierz lo_unlink (9945621);Zaimplementuj polecenia dużych obiektów
Użyjemy niektórych wyżej wymienionych cech dużego obiektu na PSQL Shell. Pierwsze polecenie Utwórz służy do utworzenia tabeli dużego obiektu, tak jak to zrobiliśmy powyżej.
>> Utwórz tabelę pic (ID Integer, nazwa tekst, pic oid);Tutaj tworzona jest tabela, aby przechowywać informacje o obrazie z typem danych dużego identyfikatora obiektu.
Wstaw wartości w tabeli
>> Włóż do Pic (ID, Nazwa, Pic) Wartości (1, „My Image”, lo_import ('/etc1/mottd'));Tutaj wybrany jest obraz z systemu operacyjnego.
Wniosek
Artykuł „Postgres duży obiekt” zawiera opis specjalizacji korzystania z dużego obiektu, jego typów i niektórych ważnych funkcji używanych do tworzenia, importowania i eksportowania dużych obiektów PostgreSQL. Niektóre funkcje są zaimplementowane na powładzie PostgreSQL w celu opracowania tworzenia i pracy dużych obiektów do przechowywania danych.