Postgres duży obiekt

Postgres duży obiekt

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.

  • Dane ustrukturyzowane: Jest to prosty rodzaj danych strukturalnych i można je utworzyć w prostej tabeli.
  • Złożone dane o strukturze: Są to złożone struktury i są tworzone w celu zarządzania funkcjami obiektu relacyjnego bazy danych Oracle, takich jak kolekcje i referencje.
  • Dane nieustrukturyzowane: Tego rodzaju dane nie są interpretowane przez bazę danych, a tego rodzaju dane nie są podzielone na mniejsze struktury logiczne.

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), klasa

varchar (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.