SlideShare a Scribd company logo
1
SQLで遊んでみよう!
- PostgreSQLで始めるDB再入門 -
みんなのPython勉強会2016/12/7
山田聡@denzowill
2
本発表内容は所属する会社と
何ら関係はなく、私個人の見解しか含んでおりません
3
0.Who am I?
http://enterprisezine.jp/dbonline/detail/8307?p=2
● 山田聡@denzowill
● StartPythonClubスタッフ
● 株式会社アシスト勤務
● DBエンジニア6年目
● ノンプログラマ、趣味でPython
● PostgreSQLとOracleが担当
4
アジェンダ
1.データベースって?
2.PostgreSQLとPython
3.SQLの基本
4.FDW
5
アジェンダ
1.データベースって?
2.PostgreSQLとPython
3.SQLの基本
4.FDW
6
1.データベース
● 軍事情報をあつめた基地が由来
● 様々な目的で利用するため、整理統合されたデータの集合体
● データ活用の基盤として存在
一元管理
共有利用
独立性
7
1.データベース
● 軍事情報をあつめた基地が由来
● 様々な目的で利用するため、整理統合されたデータの集合体
● データ活用の基盤として存在
一元管理
共有利用
独立性
同じデータが
散ってるのつらい
アプリとデータは
お互いに疎でありたい
みんなで
仲良くしたい
8
以降DBは全部RDBMSのことです
9
1.データベースの種類
メジャーな
商用RDBMS
10
1.データベースの種類
メジャーな
オープンソースの
RDBMS
11
1.OSSDBと商用DB
無償で利用できる
ソースが公開されている
自己責任※有償サポートも
ライセンス料がかかる
ソース非公開(1企業開発)
メーカ責任
発展性 安定性
など など
12
1.OSSDBと商用DB
技術に自身があるなら
全然活用できる!
何かあったら不安だから
メーカにまかせたい!
本当に止められないシステムに
挑戦的なシステムや
コストを抑えたいシステムに
など など
13
1.OSSDBと商用DBの機能差
●
コア機能はほとんど差はない
●
パフォーマンス(パラレル)
●
高可用性(レプリケーション)
●
セキュリティ
●
管理補助の充実
14
1.OSSDBと商用DBの機能差
●
コア機能はほとんど差はない
●
パフォーマンス(パラレル)
●
高可用性(レプリケーション)
●
セキュリティ
●
管理補助の充実
15
アジェンダ
1.データベースって?
2.PostgreSQLとPython
3.SQLの基本
4.FDW
16
2.PostgreSQLとPython
17
2.PostgreSQLはPythonが大好き
●
PL/Python
●
SQL関数がPythonでかける
●
PgAdmin4
●
管理ツールはFlask製
18
2.PostgreSQLはPythonが大好き
●
PL/Python
●
SQL関数がPythonでかける
●
PgAdmin4
●
管理ツールはFlask製
sampledb=# CREATE OR REPLACE FUNCTION hello_python(hello_count int)
sampledb-# RETURNS SETOF text
sampledb-# AS $$
sampledb$#
sampledb$# for n in range(hello_count):
sampledb$# yield "HELLO WORLD"
sampledb$#
sampledb$# $$ LANGUAGE plpythonu;
CREATE FUNCTION
sampledb=# select hello_python(5);
hello_python
--------------
HELLO WORLD
HELLO WORLD
HELLO WORLD
HELLO WORLD
HELLO WORLD
(5 rows)
19
2.PostgreSQLはPythonが大好き
●
PL/Python
●
SQL関数がPythonでかける
●
PgAdmin4
●
管理ツールはFlask製
20
アジェンダ
1.データベースって?
2.PostgreSQLとPython
3.SQLの基本
4.FDW
21
3.SQLの基本
SQL
Structured Query Language
●
RDBMSへの操作用
●
非手続き型言語
●
データの検索・操作
●
最近はRDBMS以外でも使える
22
射影
3.SQLの基本
SELECT col1, col2 FROM table1;
tabl1のすべての行のcol1,col2を
表示してください。
23
選択
3.SQLの基本
SELECT col1, col2 FROM table1
WHERE col3 = 100;
tabl1のcol3が100の行について
col1,col2を表示してください。
24
ソート
3.SQLの基本
SELECT col1, col2 FROM table1
WHERE col3 = 100 ORDER BY col1;
tabl1のcol3が100の行について
col1,col2をcol1の順番で
表示してください。
25
結合
3.SQLの基本
SELECT
table1.col1,
table2.col1
FROM
table1 JOIN table2
ON table1.co2 = tabl2.col3
table1のcol2とtable2のcol3について
同じ行を取得して、table1のcol1と
table2のcol1を表示してください。
26
結合
3.SQLの基本
SELECT
table1.col1,
table2.col1
FROM
table1 JOIN table2
ON table1.co2 = table2.col3
JOIN table3
ON table2.col2 = table3.col2;
table1のcol2とtable2のcol3について
同じ行を取得して、さらにその行のcol2と
table3のcol2が同じ行についてtable1の
col1とtable2のcol1を表示してください。
27
集約
3.SQLの基本
SELECT col1, count(*)
FROM table1
GROUP BY col1;
tabl1についてcol1が同じものを
まとめて、それぞれについて行数を
表示(count(*))してください。
28
3.SQLの基本
col1 | col2 | col3
-----------+------+------
APPLE | 1 | 100
APPLE | 2 | 100
APPLE | 2 | 300
PEN | 1 | 100
PEN | 1 | 200
PINEAPPLE | 1 | 200
PINEAPPLE | 1 | 100
PINEAPPLE | 2 | 100
PINEAPPLE | 2 | 300
PINEAPPLE | 2 | 400
col1 | count
-----------+-------
PEN | 2
APPLE | 3
PINEAPPLE | 5
29
ここまで欲しいデータの条件しか
指定していないことに
お気づきですか?
30
3.手続き型
SQLは非手続き型
●ほしいデータの条件を指定するだけ
●データをどう取り出すかは指定しない
●取り出す経路はシステム側に託す
●データをどう取り出すか含め開発する
●どれをループするのか
●どれを条件として比較するのか
Pythonは手続き型
31
3.手続き型
col1 | col2 | col3
-----------+------+------
APPLE | 1 | 100
APPLE | 2 | 100
APPLE | 2 | 300
PEN | 1 | 100
PEN | 1 | 200
PINEAPPLE | 1 | 200
PINEAPPLE | 1 | 100
PINEAPPLE | 2 | 100
PINEAPPLE | 2 | 300
PINEAPPLE | 2 | 400
[
{
"col1": "APPLE",
"col2": 1,
"col3": 100,
},
{
"col1": "APPLE",
"col2": 2,
"col3": 100,
},
:
Pythonで扱う想定でディクショナリにしたもの
32
3.SQLで処理したなら
sampledb=# SELECT col1, col2 FROM table1
sampledb-# WHERE col3 = 100 ORDER BY col1;
col1 | col2
-----------+------
APPLE | 1
APPLE | 2
PEN | 1
PINEAPPLE | 1
PINEAPPLE | 2
(5 rows)
33
3.Pythonで同じ処理をするなら
result = []
# col3==100のデータに絞込
for row in data:
if row["col3"] == 100:
result.append(row)
# col1でソート
result.sort(key=lambda x: x["col1"])
# 結果の表示
for row in result:
print row["col1"], row["col2"]
34
3.Pythonで同じ処理をするなら
result = []
# col3==100のデータに絞込
for row in data:
if row["col3"] == 100:
result.append(row)
# col1でソート
result.sort(key=lambda x: x["col1"])
# 結果の表示
for row in result:
print row["col1"], row["col2"]
35
3.Pythonで同じ処理をするなら
result = []
# col3==100のデータに絞込
for row in data:
if row["col3"] == 100:
result.append(row)
# col1でソート
result.sort(key=lambda x: x["col1"])
# 結果の表示
for row in result:
print row["col1"], row["col2"]
36
3.Pythonで同じ処理をするなら
result = []
# col3==100のデータに絞込
for row in data:
if row["col3"] == 100:
result.append(row)
# col1でソート
result.sort(key=lambda x: x["col1"])
# 結果の表示
for row in result:
print row["col1"], row["col2"]
37
3.Pythonで同じ処理をするなら
逆でも結果は
同じだが、遅くなる
開発者が最適な
手続きを考える
result = []
# col3==100のデータに絞込
for row in data:
if row["col3"] == 100:
result.append(row)
# col1でソート
result.sort(key=lambda x: x["col1"])
# 結果の表示
for row in result:
print row["col1"], row["col2"]
38
非手続き型言語(SQL)では誰が
手続きを考えるのか
39
3.SQLで手続きを作る流れ
プランナ,オプティマイザ
※製品で呼称は違う
SQL
表の行数
データの分布
40
3.SQLで手続きを作る流れ
プランナ,オプティマイザ
※製品で呼称は違う
SQL
表の行数
データの分布
実行計画
41
3.SQLで手続きを作る流れ
プランナ,オプティマイザ
※製品で呼称は違う
SQL
表の行数
データの分布
実行計画
データへ
アクセスする手続き
42
3.SQLで手続きを作る流れ
●大体はプランナの実行計画のほうが優れている
●何個も表が結合するSQLの最適解は人間には無理
●たまにプランナも失敗する
●プランナが上手に動ける環境を整えるのが大事
43
アジェンダ
1.データベースって?
2.PostgreSQLとPython
3.SQLの基本
4.FDW
44
4.FDW
Foreign Data Wrapper
外部データラッパー:
PostgreSQL 9.1から導入された拡張機能
外部のDBや、CSVといった外部リソースを
PostgreSQLのテーブルとして扱う機能。
様々なリソースにSQLで透過的にアクセス
できます。
45
4.FDW
SQL
FDW
46
4.FDWの種類
https://wiki.postgresql.org/wiki/Foreign_data_wrappers
47
4.FDWの作り方
FDWの仕様に従って必要な
インターフェースを実装するだけ!
48
4.FDWの作り方
FDWの仕様に従って必要な
インターフェースを実装するだけ!
C言語で!
49
4.FDWの作り方
FDWの仕様に従って必要な
インターフェースを実装するだけ!
C言語で!
つらいorz
50
4.FDWの作り方
https://wiki.postgresql.org/wiki/Foreign_data_wrappers
Type:
Multicorn?
51
4.FDWの作り方
http://multicorn.org/
52
4.Multicorn
●
PythonでFDWを実装できるライブラリ
●
Multicornのクラスを継承して実装するだけ
from multicorn import ForeignDataWrapper
class ConstantForeignDataWrapper(ForeignDataWrapper):
def __init__(self, options, columns):
super(ConstantForeignDataWrapper, self).__init__(options, columns)
self.columns = columns
def execute(self, quals, columns):
for index in range(20):
line = {}
for column_name in self.columns:
line[column_name] = '%s %s' % (column_name, index)
yield line
53
残りの時間で独自のFDWを実装
54
残りの時間で独自のFDWを実装
するには残りの時間が
短すぎるので続きは次の機会で
55
あなたもPythonと
PostgreSQLで遊んでみてください

More Related Content

What's hot (20)

Google BigQuery クエリの処理の流れ - #bq_sushi
Google BigQuery クエリの処理の流れ - #bq_sushi Google BigQuery クエリの処理の流れ - #bq_sushi
Google BigQuery クエリの処理の流れ - #bq_sushi
Google Cloud Platform - Japan
 
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
KTH, 케이티하이텔
 
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Hadoop / Spark Conference Japan
 
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
Masahiro Nagano
 
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
gree_tech
 
クラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーククラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーク
Y Watanabe
 
從線上售票看作業系統設計議題
從線上售票看作業系統設計議題從線上售票看作業系統設計議題
從線上售票看作業系統設計議題
National Cheng Kung University
 
[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입
[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입
[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입
choi sungwook
 
より深く知るオプティマイザとそのチューニング
より深く知るオプティマイザとそのチューニングより深く知るオプティマイザとそのチューニング
より深く知るオプティマイザとそのチューニング
Yuto Hayamizu
 
高速!Clojure Web 開発入門
高速!Clojure Web 開発入門高速!Clojure Web 開発入門
高速!Clojure Web 開発入門
Kazuki Tsutsumi
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
 
第15回JSSUG「Azure SQL Database 超入門」
第15回JSSUG「Azure SQL Database 超入門」第15回JSSUG「Azure SQL Database 超入門」
第15回JSSUG「Azure SQL Database 超入門」
裕之 木下
 
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
PostgreSQL SQLチューニング入門 実践編(pgcon14j)PostgreSQL SQLチューニング入門 実践編(pgcon14j)
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
Satoshi Yamada
 
クラウドDWHにおける観点とAzure Synapse Analyticsの対応
クラウドDWHにおける観点とAzure Synapse Analyticsの対応クラウドDWHにおける観点とAzure Synapse Analyticsの対応
クラウドDWHにおける観点とAzure Synapse Analyticsの対応
Ryoma Nagata
 
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
Jae Young Park
 
情報科学における18のメタテクニック
情報科学における18のメタテクニック情報科学における18のメタテクニック
情報科学における18のメタテクニック
nakano_lab
 
Internship 2022
Internship 2022Internship 2022
Internship 2022
syamane
 
脳の大統一理論とも呼称される注目の「予測誤差を最小化する自由エネルギー原理とは」
脳の大統一理論とも呼称される注目の「予測誤差を最小化する自由エネルギー原理とは」脳の大統一理論とも呼称される注目の「予測誤差を最小化する自由エネルギー原理とは」
脳の大統一理論とも呼称される注目の「予測誤差を最小化する自由エネルギー原理とは」
Koji Fukuoka
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
 
FlutterでGraphQLを扱う
FlutterでGraphQLを扱うFlutterでGraphQLを扱う
FlutterでGraphQLを扱う
IgaHironobu
 
Google BigQuery クエリの処理の流れ - #bq_sushi
Google BigQuery クエリの処理の流れ - #bq_sushi Google BigQuery クエリの処理の流れ - #bq_sushi
Google BigQuery クエリの処理の流れ - #bq_sushi
Google Cloud Platform - Japan
 
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
H3 2011 파이썬으로 클라우드 하고 싶어요_분산기술Lab_하용호
KTH, 케이티하이텔
 
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Hadoop / Spark Conference Japan
 
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
Masahiro Nagano
 
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
gree_tech
 
クラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーククラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーク
Y Watanabe
 
[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입
[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입
[개인 프로젝트] 쿠버네티스를 이용한 개발환경 자동화 구축시스템 - 프로토타입
choi sungwook
 
より深く知るオプティマイザとそのチューニング
より深く知るオプティマイザとそのチューニングより深く知るオプティマイザとそのチューニング
より深く知るオプティマイザとそのチューニング
Yuto Hayamizu
 
高速!Clojure Web 開発入門
高速!Clojure Web 開発入門高速!Clojure Web 開発入門
高速!Clojure Web 開発入門
Kazuki Tsutsumi
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
 
第15回JSSUG「Azure SQL Database 超入門」
第15回JSSUG「Azure SQL Database 超入門」第15回JSSUG「Azure SQL Database 超入門」
第15回JSSUG「Azure SQL Database 超入門」
裕之 木下
 
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
PostgreSQL SQLチューニング入門 実践編(pgcon14j)PostgreSQL SQLチューニング入門 実践編(pgcon14j)
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
Satoshi Yamada
 
クラウドDWHにおける観点とAzure Synapse Analyticsの対応
クラウドDWHにおける観点とAzure Synapse Analyticsの対応クラウドDWHにおける観点とAzure Synapse Analyticsの対応
クラウドDWHにおける観点とAzure Synapse Analyticsの対応
Ryoma Nagata
 
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
Jae Young Park
 
情報科学における18のメタテクニック
情報科学における18のメタテクニック情報科学における18のメタテクニック
情報科学における18のメタテクニック
nakano_lab
 
Internship 2022
Internship 2022Internship 2022
Internship 2022
syamane
 
脳の大統一理論とも呼称される注目の「予測誤差を最小化する自由エネルギー原理とは」
脳の大統一理論とも呼称される注目の「予測誤差を最小化する自由エネルギー原理とは」脳の大統一理論とも呼称される注目の「予測誤差を最小化する自由エネルギー原理とは」
脳の大統一理論とも呼称される注目の「予測誤差を最小化する自由エネルギー原理とは」
Koji Fukuoka
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
 
FlutterでGraphQLを扱う
FlutterでGraphQLを扱うFlutterでGraphQLを扱う
FlutterでGraphQLを扱う
IgaHironobu
 

Similar to PostgreSQLとPythonとSQL (20)

Logをs3とredshiftに格納する仕組み
Logをs3とredshiftに格納する仕組みLogをs3とredshiftに格納する仕組み
Logをs3とredshiftに格納する仕組み
Ken Morishita
 
PostgreSQLとpython
PostgreSQLとpythonPostgreSQLとpython
PostgreSQLとpython
Soudai Sone
 
Webアプリケーション入門(3)
Webアプリケーション入門(3) Webアプリケーション入門(3)
Webアプリケーション入門(3)
Takashi Asanuma
 
外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張
Shigeru Hanada
 
オープンソースRDBMS新機能ランダウンOSC2017TokyoSpring
オープンソースRDBMS新機能ランダウンOSC2017TokyoSpringオープンソースRDBMS新機能ランダウンOSC2017TokyoSpring
オープンソースRDBMS新機能ランダウンOSC2017TokyoSpring
Meiji Kimura
 
[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...
[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...
[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...
Insight Technology, Inc.
 
PandasとSQLとの比較
PandasとSQLとの比較PandasとSQLとの比較
PandasとSQLとの比較
iPride Co., Ltd.
 
経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめ経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめ
Yasushi Hara
 
PythonでテキストをJSONにした話(PyCon mini sapporo 2015)
PythonでテキストをJSONにした話(PyCon mini sapporo 2015)PythonでテキストをJSONにした話(PyCon mini sapporo 2015)
PythonでテキストをJSONにした話(PyCon mini sapporo 2015)
Satoshi Yamada
 
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめ
Ohyama Masanori
 
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
Toru Miyahara
 
今年こそ始めたい!SQL超入門 MIRACLE Linux Meetup版 0620
今年こそ始めたい!SQL超入門 MIRACLE Linux Meetup版 0620今年こそ始めたい!SQL超入門 MIRACLE Linux Meetup版 0620
今年こそ始めたい!SQL超入門 MIRACLE Linux Meetup版 0620
Toru Miyahara
 
Lt ingaoho-jsonb+postgeres fdw
Lt ingaoho-jsonb+postgeres fdwLt ingaoho-jsonb+postgeres fdw
Lt ingaoho-jsonb+postgeres fdw
Toshi Harada
 
リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version
Mikiya Okuno
 
MySQL 5.5 Update #denatech
MySQL 5.5 Update #denatechMySQL 5.5 Update #denatech
MySQL 5.5 Update #denatech
Mikiya Okuno
 
オープンソース・データベースの最新事情
オープンソース・データベースの最新事情オープンソース・データベースの最新事情
オープンソース・データベースの最新事情
Meiji Kimura
 
Tuning on my_sql
Tuning on my_sqlTuning on my_sql
Tuning on my_sql
Edward D. Kim
 
NoSQL Bigtable and Azure Table
NoSQL Bigtable and Azure TableNoSQL Bigtable and Azure Table
NoSQL Bigtable and Azure Table
Takekazu Omi
 
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
NTT DATA Technology & Innovation
 
データベース技術 3(Database_3)
データベース技術 3(Database_3)データベース技術 3(Database_3)
データベース技術 3(Database_3)
Yuka Obu
 
Logをs3とredshiftに格納する仕組み
Logをs3とredshiftに格納する仕組みLogをs3とredshiftに格納する仕組み
Logをs3とredshiftに格納する仕組み
Ken Morishita
 
PostgreSQLとpython
PostgreSQLとpythonPostgreSQLとpython
PostgreSQLとpython
Soudai Sone
 
Webアプリケーション入門(3)
Webアプリケーション入門(3) Webアプリケーション入門(3)
Webアプリケーション入門(3)
Takashi Asanuma
 
外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張
Shigeru Hanada
 
オープンソースRDBMS新機能ランダウンOSC2017TokyoSpring
オープンソースRDBMS新機能ランダウンOSC2017TokyoSpringオープンソースRDBMS新機能ランダウンOSC2017TokyoSpring
オープンソースRDBMS新機能ランダウンOSC2017TokyoSpring
Meiji Kimura
 
[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...
[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...
[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...
Insight Technology, Inc.
 
経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめ経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめ
Yasushi Hara
 
PythonでテキストをJSONにした話(PyCon mini sapporo 2015)
PythonでテキストをJSONにした話(PyCon mini sapporo 2015)PythonでテキストをJSONにした話(PyCon mini sapporo 2015)
PythonでテキストをJSONにした話(PyCon mini sapporo 2015)
Satoshi Yamada
 
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめ
Ohyama Masanori
 
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
Toru Miyahara
 
今年こそ始めたい!SQL超入門 MIRACLE Linux Meetup版 0620
今年こそ始めたい!SQL超入門 MIRACLE Linux Meetup版 0620今年こそ始めたい!SQL超入門 MIRACLE Linux Meetup版 0620
今年こそ始めたい!SQL超入門 MIRACLE Linux Meetup版 0620
Toru Miyahara
 
Lt ingaoho-jsonb+postgeres fdw
Lt ingaoho-jsonb+postgeres fdwLt ingaoho-jsonb+postgeres fdw
Lt ingaoho-jsonb+postgeres fdw
Toshi Harada
 
リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version リレーショナルデータベースとの上手な付き合い方 long version
リレーショナルデータベースとの上手な付き合い方 long version
Mikiya Okuno
 
MySQL 5.5 Update #denatech
MySQL 5.5 Update #denatechMySQL 5.5 Update #denatech
MySQL 5.5 Update #denatech
Mikiya Okuno
 
オープンソース・データベースの最新事情
オープンソース・データベースの最新事情オープンソース・データベースの最新事情
オープンソース・データベースの最新事情
Meiji Kimura
 
NoSQL Bigtable and Azure Table
NoSQL Bigtable and Azure TableNoSQL Bigtable and Azure Table
NoSQL Bigtable and Azure Table
Takekazu Omi
 
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
NTT DATA Technology & Innovation
 
データベース技術 3(Database_3)
データベース技術 3(Database_3)データベース技術 3(Database_3)
データベース技術 3(Database_3)
Yuka Obu
 
Ad

More from Satoshi Yamada (13)

Pythonで業務改善をしたときにあった問題(ライト版)
Pythonで業務改善をしたときにあった問題(ライト版)Pythonで業務改善をしたときにあった問題(ライト版)
Pythonで業務改善をしたときにあった問題(ライト版)
Satoshi Yamada
 
pythonでemlファイルを扱う話
pythonでemlファイルを扱う話pythonでemlファイルを扱う話
pythonでemlファイルを扱う話
Satoshi Yamada
 
bottle.pyをつかったチャットアプリ作成チュートリアル
bottle.pyをつかったチャットアプリ作成チュートリアルbottle.pyをつかったチャットアプリ作成チュートリアル
bottle.pyをつかったチャットアプリ作成チュートリアル
Satoshi Yamada
 
bottleで始めるWEBアプリの最初の一歩
bottleで始めるWEBアプリの最初の一歩bottleで始めるWEBアプリの最初の一歩
bottleで始めるWEBアプリの最初の一歩
Satoshi Yamada
 
Requestsで始める5分前帰社
Requestsで始める5分前帰社Requestsで始める5分前帰社
Requestsで始める5分前帰社
Satoshi Yamada
 
DBエンジニアに必要だったPythonのスキル
DBエンジニアに必要だったPythonのスキルDBエンジニアに必要だったPythonのスキル
DBエンジニアに必要だったPythonのスキル
Satoshi Yamada
 
本気でPythonで宛名書きした話
本気でPythonで宛名書きした話本気でPythonで宛名書きした話
本気でPythonで宛名書きした話
Satoshi Yamada
 
10080分でPythonからIP Messeneger
10080分でPythonからIP Messeneger10080分でPythonからIP Messeneger
10080分でPythonからIP Messeneger
Satoshi Yamada
 
15分で情シスに怒られる方法
15分で情シスに怒られる方法15分で情シスに怒られる方法
15分で情シスに怒られる方法
Satoshi Yamada
 
Djangoで業務改善したい
Djangoで業務改善したいDjangoで業務改善したい
Djangoで業務改善したい
Satoshi Yamada
 
PostgreSQL実行計画入門@関西PostgreSQL勉強会
PostgreSQL実行計画入門@関西PostgreSQL勉強会PostgreSQL実行計画入門@関西PostgreSQL勉強会
PostgreSQL実行計画入門@関西PostgreSQL勉強会
Satoshi Yamada
 
201505 PostgreSQLアンカンファレンス(PL/Pythonで作るWEBアプリ)
201505 PostgreSQLアンカンファレンス(PL/Pythonで作るWEBアプリ)201505 PostgreSQLアンカンファレンス(PL/Pythonで作るWEBアプリ)
201505 PostgreSQLアンカンファレンス(PL/Pythonで作るWEBアプリ)
Satoshi Yamada
 
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
Satoshi Yamada
 
Pythonで業務改善をしたときにあった問題(ライト版)
Pythonで業務改善をしたときにあった問題(ライト版)Pythonで業務改善をしたときにあった問題(ライト版)
Pythonで業務改善をしたときにあった問題(ライト版)
Satoshi Yamada
 
pythonでemlファイルを扱う話
pythonでemlファイルを扱う話pythonでemlファイルを扱う話
pythonでemlファイルを扱う話
Satoshi Yamada
 
bottle.pyをつかったチャットアプリ作成チュートリアル
bottle.pyをつかったチャットアプリ作成チュートリアルbottle.pyをつかったチャットアプリ作成チュートリアル
bottle.pyをつかったチャットアプリ作成チュートリアル
Satoshi Yamada
 
bottleで始めるWEBアプリの最初の一歩
bottleで始めるWEBアプリの最初の一歩bottleで始めるWEBアプリの最初の一歩
bottleで始めるWEBアプリの最初の一歩
Satoshi Yamada
 
Requestsで始める5分前帰社
Requestsで始める5分前帰社Requestsで始める5分前帰社
Requestsで始める5分前帰社
Satoshi Yamada
 
DBエンジニアに必要だったPythonのスキル
DBエンジニアに必要だったPythonのスキルDBエンジニアに必要だったPythonのスキル
DBエンジニアに必要だったPythonのスキル
Satoshi Yamada
 
本気でPythonで宛名書きした話
本気でPythonで宛名書きした話本気でPythonで宛名書きした話
本気でPythonで宛名書きした話
Satoshi Yamada
 
10080分でPythonからIP Messeneger
10080分でPythonからIP Messeneger10080分でPythonからIP Messeneger
10080分でPythonからIP Messeneger
Satoshi Yamada
 
15分で情シスに怒られる方法
15分で情シスに怒られる方法15分で情シスに怒られる方法
15分で情シスに怒られる方法
Satoshi Yamada
 
Djangoで業務改善したい
Djangoで業務改善したいDjangoで業務改善したい
Djangoで業務改善したい
Satoshi Yamada
 
PostgreSQL実行計画入門@関西PostgreSQL勉強会
PostgreSQL実行計画入門@関西PostgreSQL勉強会PostgreSQL実行計画入門@関西PostgreSQL勉強会
PostgreSQL実行計画入門@関西PostgreSQL勉強会
Satoshi Yamada
 
201505 PostgreSQLアンカンファレンス(PL/Pythonで作るWEBアプリ)
201505 PostgreSQLアンカンファレンス(PL/Pythonで作るWEBアプリ)201505 PostgreSQLアンカンファレンス(PL/Pythonで作るWEBアプリ)
201505 PostgreSQLアンカンファレンス(PL/Pythonで作るWEBアプリ)
Satoshi Yamada
 
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
Satoshi Yamada
 
Ad

PostgreSQLとPythonとSQL