Oracle 12.2 Database Sharding

Podobne dokumenty
Wydajność hurtowni danych opartej o Oracle10g Database

PODSTAWY BAZ DANYCH. 10. Partycjonowanie tabel i indeksów. 2009/ Notatki do wykładu "Podstawy baz danych"

Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski. Poznań,

PODSTAWY BAZ DANYCH Wykład Partycjonowanie tabel i indeksów

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

Zadania do wykonania na laboratorium

Nowe technologie baz danych

Język SQL, zajęcia nr 1

Oracle11g: Wprowadzenie do SQL

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Partycjonowanie tabel (1)

Tuning SQL Server dla serwerów WWW

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Paweł Rajba

SIECI KOMPUTEROWE I BAZY DANYCH

Wykład 8. SQL praca z tabelami 5

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Cwiczenie 4. Połączenia, struktury dodatkowe

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Relacyjne bazy danych. Podstawy SQL

Widok Connections po utworzeniu połączenia. Obszar roboczy

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

1 Projekt fizyczny 1. 3 Perspektywy słownika danych Źródła 12

Hbase, Hive i BigSQL

Zarządzanie strukturą bazy danych Oracle11g

Partycjonowanie. Partycjonowanie tabel (1)

SIECI KOMPUTEROWE I BAZY DANYCH

Rozproszone bazy danych 3

Autor: Joanna Karwowska

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Relacyjne bazy danych. Podstawy SQL

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Bazy danych Ćwiczenia projektowe

Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach

Wykład 5. SQL praca z tabelami 2

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

1 Instalowanie i uaktualnianie serwera SQL Server

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Systemy GIS Tworzenie zapytań w bazach danych

Optymalizacja poleceń SQL

Ramowy plan kursu. Lp. Moduły Wyk. Lab. Przekazywane treści

Zarządzanie obiektami bazy danych Oracle11g

Projektowanie systemów baz danych

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Bazy danych Ćwiczenia projektowe

Wprowadzenie do Hurtowni Danych

Oracle PL/SQL. Paweł Rajba.

Jerzy Nawrocki, Wprowadzenie do informatyki

Ref. 7 - Język SQL - polecenia DDL i DML

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Podstawowe informacje o bazach danych. Technologie Informacyjne

Administracja bazy danych Oracle 10g

Hurtownie danych - przegląd technologii

Oracle10g Database: struktury fizyczne dla hurtowni danych

Programowanie obiektowe

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

Pakiety podprogramów Dynamiczny SQL

Indeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na

Microsoft SQL Server Podstawy T-SQL

Monika Kruk Mariusz Grabowski. Informatyka Stosowana WFiIS, AGH 13 grudzień 2006

Spis treści. Przedmowa

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

Laboratorium nr 1. Temat: Wprowadzenie do MySQL-a

SQL Server Configuration Manager centrum dowodzenia

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

Bazy danych - wykład wstępny

MongoDB. wprowadzenie. dr inż. Paweł Boiński, Politechnika Poznańska

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

startup pfile= '$HOME/admin/pfile/initDBx.ora'; create spfile from pfile= '$HOME/admin/pfile/initDBx.ora';

Internetowe bazy danych

Bazy Danych i Usługi Sieciowe

Bazy danych. Polecenia SQL

Bazy danych i usługi sieciowe

Przestrzenne bazy danych Podstawy języka SQL

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Metody replikacji baz danych Oracle pomiędzy ośrodkami przetwarzania danych

Zbiór pytań nr 5. 2 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu

ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA

Uprawnienia, role, synonimy

Bazy danych. Dr inż. Paweł Kasprowski

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

Bazy danych i ich aplikacje

Projektowanie: architektura baz danych

Rozdział 1 Wprowadzenie do baz danych. (c) Instytut Informatyki Politechniki Poznańskiej 1

Optymalizacja poleceń SQL Wprowadzenie

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Transkrypt:

Oracle 12.2 Database Sharding Maciej Zakrzewicz XVII Konferencja PLOUG, 8.06.2017, Warszawa

PLAN PREZENTACJI Oracle 12.2 Database Sharding Wprowadzenie do Database Sharding Mechanizmy Database Sharding w Oracle Database 12.2 Budowa dzielonej bazy danych narzędzia przygotowanie środowiska implementacja struktur danych Realizacja zapytań do tabel w dzielonej bazie danych Połączenia aplikacji z dzieloną bazą danych Podsumowanie 2

DATABASE SHARDING Wprowadzenie Technika skalowania baz danych oparta na poziomym partycjonowaniu danych pomiędzy wiele fizycznych lokalizacji (baz cząstkowych) Shared Nothing Każda baza cząstkowa (shard) przechowuje poziomy fragment tabeli logiczna baza danych fizyczne cząstkowe bazy danych 3

WCZEŚNIEJSZE ROZWIĄZANIA DATABASE SHARDING Pochodzące głównie z obszaru systemów NoSQL Apache HBase Azure SQL Elastic Database Couchbase CUBRID Elasticsearch extreme Scale IBM Informix Kdb+ MonetDB MongoDB MySQL Cluster Oracle NoSQL Database OrientDB Grails/Grails Sharding Plugin Octopus/Ruby Active Record PostgreSQL/Citus Shard Query Solr Search Server Spanner Teradata 4

SHARDING VS. PARTITIONING Porównanie metod partycjonowania poziomego sharding sharding & partitioning logiczna baza danych partitioning 5

SHARDING VS. REAL APPLICATION CLUSTERS Porównanie metod rozdzielania zasobów instancja Oracle instancja Oracle instancja Oracle instancja Oracle RAC Database Sharding 6

NIEZAWODNOŚĆ Za pomocą replikacji baz danych Oracle Data Guard Data Guard logiczna baza danych Data Guard podstawowe fizyczne cząstkowe bazy danych zapasowe fizyczne cząstkowe bazy danych 7

MECHANIZMY DATABASE SHARDING W Oracle Database 12.2 System-managed sharding przydział rekordu do bazy cząstkowej na podstawie wartości funkcji haszowej Composite sharding przydział rekordu do grupy baz cząstkowych (shard space) na wartości klucza, a następnie do bazy cząstkowej na podstawie wartości funkcji haszowej 8

SYSTEM-MANAGED SHARDING Przydział rekordu do bazy cząstkowej na podstawie funkcji haszowej nowy rekord haszowanie 9

COMPOSITE SHARDING Przydział rekordu do Shard Space na wartości klucza haszowanie nowy rekord partycjonowanie zakresowe/listowe shardspace shardspace haszowanie 10

PRZYKŁADOWA ARCHITEKTURA Composite Sharding w większej skali dane rozpraszane według lokalizacji klientów dane rozpraszane według funkcji haszowej shardspace Americas shardspace Europe shardspace Asia shardspace Australia 11

ZALETY Database Shardingu Prawie liniowa skalowalność rozmiaru bazy danych Izolacja usterek, eliminacja pojedynczego punktu awarii Możliwość geograficznej dyslokacji danych w pobliżu ich konsumentów Kroczące aktualizacje (rolling upgrades) nie wstrzymujące pracy systemu Łatwość wdrożenia w środowiskach Cloud 12

ARCHITEKTURA TECHNICZNA ROZWIĄZANIA Oracle Database Sharding Sharding Key (np. idklienta) Aplikacja Shard Director Shard Shard Catalog Shard 13

PROCES INSTALACJI ŚRODOWISKA SHARDED DATABASE Maszyna Shard Catalog Instalacja oprogramowania Oracle Database 12.2 i utworzenie bazy danych, która będzie pełnić rolę Shard Catalog non-cdb, OMF, FRA, open_links>16, open_links_per_instance>16 odblokowane konto gsmcatuser utworzenie konta właściciela Shard Catalogu Maszyny Shard (maks. 1000) Instalacja oprogramowania Oracle Database 12.2 Uruchomienie Remote Scheduler Agenta (schagent -start) Zarejestrowanie planowanej bazy danych w Shard Catalogu (schagent -registerdatabase) Maszyny Shard Director Instalacja oprogramowania Shard Director (Oracle Database 12.2 Global Service Manager) Za pomocą narzędzia GDSCTL (gdsctl): połączenie z maszyną Shard Catalog i utworzenie Shard Catalogu (create shardcatalog) utworzenie i uruchomienie procesu Shard Director (add gsm, start gsm) zdefiniowanie i zdalne utworzenie cząstkowych baz danych na maszynach Shard (create shard, deploy) 14

NOWE NARZĘDZIE KONFIGURACYJNE: GDSCTL gdsctl> create shardcatalog -database shardcat:1521:shardcat -chunks 12 - user mysdbadmin/oracle -sdb shardcat -region region1, region2 -agent_port 8000 -agent_password oracle gdsctl> add gsm -gsm sharddirector01 -listener 9000 -pwd oracle -catalog shardcat:1521:shardcat -region region1 gdsctl> start gsm -gsm sharddirector01 gdsctl> add credential -credential oraclecred -osaccount oracle -ospassword oracle gdsctl> set gsm -gsm sharddirector01 gdsctl> connect mysdbadmin/oracle gdsctl> add invitednode shard1 gdsctl> create shard -shardgroup shgrp1 -destination shard1 -credential oraclecred -sys_password oracle... 15

PRZYGOTOWANIE SCHEMATÓW DANYCH Zbiór przestrzeni tabel (tablespace set) logiczny rozproszony kontener przechowujący rozproszone tabele w cząstkowych bazach danych tworzony z poziomu bazy danych Shard Catalog polecenie create tablespace set Tabele dzielone (sharded) i duplikowane (duplicated) są definiowane z poziomu bazy danych Shard Catalog polecenie alter session enable shard ddl polecenie create sharded table polecenie create duplicated table 16

SYSTEM-MANAGED SHARDING Tworzenie tabeli dzielonej create tablespace set ts1; alter session enable shard ddl; create sharded table customers (cust_id number(8) primary key, name varchar2(50), location varchar2(20), ) partition by consistent hash(cust_id) partitions auto tablespace set ts1; Zbiór przestrzeni tabel rozproszonych pomiędzy bazy cząstkowe Tabela rozdzielona pomiędzy bazy cząstkowe rekordy rozpraszane według wartości funkcji haszowej hash(cust_id) 17

CONSISTENT HASHING System-Managed Sharding W jaki sposób rekordy tabeli są przydzielane do konkretnej cząstkowej bazy danych? klasyczne haszowanie: hash(klucz) mod N gdy zmienia się N, konieczne remapowanie wszystkich kluczy! haszowanie spójne (consistent hashing) gdy zmienia się N, remapowaniu podlega tylko 1/N kluczy przestrzeń wartości funkcji hash(klucz) dzielona jest na N równych przedziałów (chunks) przedziały są przypisywane do cząstkowych baz danych (wiele-do-jednego) gdy zmienia się liczba cząstkowych baz danych, przenoszone są tylko niektóre przedziały, a zawartość przedziałów nie ulega zmianie 18

CONSISTENT HASHING Przykład uproszczony dodanie nowej bazy cząstkowej Chunk: hash('poznan') 3609f9a3 Chunk: 00000000-2AAAAAA9 2AAAAAAA-55555554 55555555-7FFFFFFE Chunk: 7FFFFFFF-AAAAAAA9 AAAAAAAA-D5555554 D5555555-FFFFFFFF 00000000-2AAAAAA9 2AAAAAAA-55555554 55555555-7FFFFFFE Chunk: 7FFFFFFF-AAAAAAA9 AAAAAAAA-D5555554 D5555555-FFFFFFFF Chunk: 55555555-7FFFFFFE D5555555-FFFFFFFF 19

RODZINA TABEL DZIELONYCH Sharded table family Gdy z tabelą dzieloną powiązane są inne tabele, ich rekordy powinny być rozpraszane w taki sam sposób Rodzina tabel dzielonych (sharded table family) obejmuje tabele, których rekordy są rozpraszane (przydzielane do baz cząstkowych) w jednakowy sposób podczas tworzenia tabel należy zastosować klauzulę partycjonowania referencyjnego względem tabeli głównej partition by reference (fk) 20

SYSTEM-MANAGED SHARDING Tworzenie tabeli duplikowanej create tablespace tbsp1 datafile size 1G; create duplicated table products ( product_id number(8) primary key, name varchar2(128), price number(19,4) ) tablespace tbsp1; Tabela tworzona w Shard Catalogu W bazach cząstkowych automatycznie utworzone zostaną perspektywy materializowane (read only) częstotliwość odświeżania SHRD_DUPL_TABLE_REFRESH _RATE (domyślnie 60s) 21

PLAN WYKONANIA ZAPYTANIA DO TABELI DZIELONEJ Z poziomu Shard Catalogu SQL> select * from customers where name like '%one%'; ------------------------------------------------------------ Id Operation Name Cost (%CPU) Inst IN-OUT ------------------------------------------------------------ 0 SELECT STATEMENT 0 (0) 1 SHARD ITERATOR 2 REMOTE ORA_S~ R->S ------------------------------------------------------------ 22

PLAN WYKONANIA ZAPYTANIA DO TABELI DUPLIKOWANEJ Z poziomu bazy cząstkowej SQL> select * from products where product_id>20; ------------------------------------------------------------------------------ Id Operation Name Rows Bytes Cost ------------------------------------------------------------------------------ 0 SELECT STATEMENT 1 112 0 (0) 1 MAT_VIEW ACCESS BY INDEX ROWID BATCHED PRODUCTS 1 112 0 (0) * 2 INDEX RANGE SCAN SYS_C007361 1 0 (0) ------------------------------------------------------------------------------ 23

COMPOSITE SHARDING Tworzenie tabeli dzielonej create tablespace set ts1 in shardspace americas; create tablespace set ts2 in shardspace europe; alter session enable shard ddl; create sharded table customers (cust_id number(8) primary key, name varchar2(50), location varchar2(20), ) partitionset by list(location) partition by consistent hash(cust_id) partitions auto (partitionset americas values ('AMERICA') tablespace set tsp1, partitionset europe values ('EUROPE') tablespace set ts2); Oddzielny zbiór przestrzeni tabel w każdej grupie baz cząstkowych (shard space) Tabela rozdzielona pomiędzy bazy cząstkowe rekordy rozpraszane pomiędzy grupy baz cząstkowych na podstawie wartości kolumny location następnie rozpraszane pomiędzy bazy cząstkowe według wartości funkcji haszowej hash(cust_id) 24

POŁĄCZENIA APLIKACJI Z DZIELONĄ BAZĄ DANYCH W celu dostępu do tabel dzielonych i duplikowanych Bezpośrednie z bazą cząstkową na podstawie wartości klucza podanego przez aplikację klienta Sharding Key wspierane przez JDBC, OCI, ODP.NET, itp. Za pośrednictwem Proxy Routing dla zapytań globalnych wymagają połączenia się z bazą Shard Catalog, z usługą GDS$CATALOG Zarządzanie wydajnością instancji Oracle Database 12c 25

POŁĄCZENIE BEZPOŚREDNIE - PRZYKŁAD Przekierowanie do właściwej bazy cząstkowej na podstawie wartości klucza PoolDataSource pds = PoolDataSourceFactory.getPoolDataSource();... OracleShardingKey shardingkey = pds.createshardingkeybuilder().subkey(12345, OracleType.NUMBER).build(); Connection conn = pds.createconnectionbuilder().shardingkey(shardingkey).build();... 26

PROXY ROUTING - RESTRYKCJE Nieobsługiwane operacje Nieobsługiwane zapytania połączeniowe do tabel dzielonych, z wyjątkiem: połączeń równościowych w oparciu o klucz partycjonowania użycia dodatkowego filtra w zapytaniu, prowadzącego do tylko jednej cząstkowej bazy danych Nieobsługiwane zapytania do tabel dzielonych wykorzystujące EXISTS lub NOT EXISTS Nieobsługiwane funkcje grupowe AVG, COUNT, SUM, MIN, MAX w zapytaniach do tabel dzielonych Polecenia DML operujące na wielu bazach cząstkowych Zarządzanie wydajnością instancji Oracle Database 12c 27

DATABASE SHARDING - DOSTĘPNOŚĆ W różnych modelach licencyjnych 28

POSUMOWANIE Oracle 12.2 Database Sharding Nowy poziom horyzontalnego partycjonowania (skalowania) bazy danych Możliwość łatwej dyslokacji danych w pobliże konsumentów danych Istotne ograniczenia dla zapytań globalnych Konieczność modyfikacji aplikacji i modeli danych W porównaniu z rozwiązaniami NoSQL: relacyjny model danych ACID SQL i PL/SQL kompresja i szyfrowanie danych niezawodność poprzez replikację on-line zaawansowane kopie bezpieczeństwa i odtwarzanie po awarii 29