狠狠撸

狠狠撸Share a Scribd company logo
http://postgres.heroku.com



ウィル?ラインウェバー
   @leinweber

   Heroku,Inc.
アーキテクチャ
                   Architecture



Force.com          Heroku 実行環境                          その他
                                                        Others
                     Heroku Runtime




    Database.com                      Heroku Postgres
Database.com    Social Enterprise DBaaS



Heroku Postgres   SQL Database-as-a-Service
データベースをつくってみよう
  Let’s Provision a Database
heroku addons:add heroku-postgres:dev -a will
拡张机能
           Value-Added Features




Heroku         Postgres
Postgres
           マネージドサービス
           Management Services
拡张机能
           Value-Added Features




Heroku         Postgres
Postgres
           マネージドサービス
           Management Services
マネージドサービス
 Managed Services
顿叠管理者の仕事
   DBA Tasks
  セットアップ
      Setup
   管理?監視
     Manage
  セキュリティ
     Security
  バックアップ
     Backup
      拡張
      Scale
  データ定義/抽出
     Query
顿叠管理者の仕事
   DBA Tasks
  セットアップ
      Setup
   管理?監視
     Manage
  セキュリティ
     Security
  バックアップ
     Backup
      拡張
      Scale
  データ定義/抽出
     Query
24x365 監視体制
  24x365 Monitoring



 ヘルスチェック
    Health Checks



継続的なデータ保全
 Continuous Protection
拡张机能
           Value-Added Features




Heroku         Postgres
Postgres
           マネージドサービス
           Management Services
Postgres
100% 互換
100% Compatibility
なぜ笔辞蝉迟驳谤别蝉なのか?
    Why Postgres?
Users   Purchases




        Products
CREATE TABLE products (
????id integer NOT NULL,
????title character varying(255),
????description text,
????price numeric(10,2)
);
CREATE TABLE users (
????id integer NOT NULL,
?????rst_name character varying(50),
????last_name character varying(50),
????email character varying(255),

 data hstore,
????created_at timestamp without time zone,
????updated_at timestamp without time zone,
????last_login timestamp with time zone
);
CREATE TABLE purchases (
   id integer NOT NULL,
? user_id integer,
?? items decimal(10,2) [][],

 occurred_at timestamp
);
                               items[x][0] = item_id
                               items [x][1] = qty
                               items [x][2] = price
データ型
                   Data types


INSERT INTO purchases VALUES (
  2, 2, '{{11.0, 1.0, 4.99}}', now()
);
その他の言语
                  Other languadges
  bigint polygon           money
timestamp             date       booleaninterval
     tz smallint  array     integer       UUID
   serial          bytea            char
             line        numeric
   inet cidr                    point    circle
                  time text          ?oat
    macaddr                   timetz        enum
            varchar     tsquery       XML
    path             tsvector timestamp box
その他の言语
                       Other languadges
CREATE OR REPLACE FUNCTION total(decimal(10,2)[][])
RETURNS decimal(10,2) AS $$
DECLARE
 s decimal(10,2) := 0;
 x decimal[];
BEGIN
 FOREACH x SLICE 1 IN ARRAY $1
 LOOP
  s := s + (x[2] * x[3]);
 END LOOP;
 RETURN s;
END;
$$ LANGUAGE plpgsql;
その他の言语
         Other languadges

FOREACH x SLICE 1 IN ARRAY $1
 LOOP
  s := s + (x[2] * x[3]);
 END LOOP;
 RETURN s;
その他の言语
                    Other languadges

python pgsql
                     ruby         j    lolcode

        lua                V8     R
                   scheme
  tcl                   SQL   psm            Java
              sh       php      javascript
エクステンション
                         Extention

CREATE EXTENSION hstore;
CREATE TABLE users (
   id integer NOT NULL,
   ?rst_name character varying(50),
   last_name character varying(50),
   email character varying(255),
   data hstore,
   created_at timestamp without time zone,
   last_login timestamp without time zone
);
エクステンション
                    Extention
INSERT INTO users
VALUES (
   1,
   'Craig',
   'Kerstiens',
   'craig.kerstiens@gmail.com',
   'sex => "M", state => "CA"',
   now(),
   now()
);
エクステンション
                   Extention

dblink hstore     uuid-ossp trigram
                                  pgstattuple
      citext pgcrypto pgrowlocks
  isn         ltree
                  earthdistance
      cube                        dict_int
           tablefunc  fuzzystrmatch
 unaccent                         dict_xsyn
                    btree_gist
拡张机能
           Value-Added Features




Heroku         Postgres
Postgres
           マネージドサービス
           Management Services
拡张机能
Value-Added Features
Data Clips
データを共有する最も簡単な方法
The easiest way to share your data
+
                           SELECT *
本番データ                      FROM sales
Live Production Data
                           WHERE amount > 1
https://postgres.heroku.com/dataclips/{unique & secure hash}
Heroku Postgres
Fork
     データベースを完全な複製を作成
A perfect, byte-for-byte clone of your database
Fork

Production
   App
Fork

Production
   App
Fork

Production   データの内部を安全に調査
   App         Investigate data safty
Follow
ワンクリックでレプリケーションを作成
  Read replicas with a single click
Follow
Master
Database

                  書き込みトランザクション
                    Write Transactions
     Follower 1



                  読み出しトランザクション
     Follower 2     Read Transactions
Master
Database

                  書き込みトランザクション
                    Write Transactions
     Follower 1



                  読み出しトランザクション
     Follower 2     Read Transactions
Master
Database

                  書き込みトランザクション
                    Write Transactions
    New Master



                  読み出しトランザクション
     Follower 2     Read Transactions
ご清聴ありがとうございました
     Heroku Postgres Workbok
http://developerforcejp.s3.amazonaws.com/developer/docs/

    workbook_heroku/workbook_heroku_postgres.pdf

          http://postgres.heroku.com

More Related Content

Heroku Postgres