Soumettre la recherche
Mettre en ligne
時系列データ型(Int4)をつくってみた
•
0 j'aime
•
1,595 vues
Toshi Harada
Suivre
PostgreSQL Unconference 2014/01/18
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 24
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
20181122 pg con-jp-lt-logrep
20181122 pg con-jp-lt-logrep
Toshi Harada
Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
Hisao Soyama
swirl パッケージでインタラクティブ学習
swirl パッケージでインタラクティブ学習
hoxo_m
東大生向けデータ解析講座 第1回 2017/12/27
東大生向けデータ解析講座 第1回 2017/12/27
西岡 賢一郎
東大生向けデータ解析講座 第4回 2018/01/05
東大生向けデータ解析講座 第4回 2018/01/05
西岡 賢一郎
RとPythonによるデータ解析入門
RとPythonによるデータ解析入門
Atsushi Hayakawa
東大生向けデータ解析講座 第3回 2018/01/04
東大生向けデータ解析講座 第3回 2018/01/04
西岡 賢一郎
東大生向けデータ解析講座 第2回 2017/12/29
東大生向けデータ解析講座 第2回 2017/12/29
西岡 賢一郎
Recommandé
20181122 pg con-jp-lt-logrep
20181122 pg con-jp-lt-logrep
Toshi Harada
Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
Pythonによるソーシャルデータ分析―わたしはこうやって修士号を取得しました―
Hisao Soyama
swirl パッケージでインタラクティブ学習
swirl パッケージでインタラクティブ学習
hoxo_m
東大生向けデータ解析講座 第1回 2017/12/27
東大生向けデータ解析講座 第1回 2017/12/27
西岡 賢一郎
東大生向けデータ解析講座 第4回 2018/01/05
東大生向けデータ解析講座 第4回 2018/01/05
西岡 賢一郎
RとPythonによるデータ解析入門
RとPythonによるデータ解析入門
Atsushi Hayakawa
東大生向けデータ解析講座 第3回 2018/01/04
東大生向けデータ解析講座 第3回 2018/01/04
西岡 賢一郎
東大生向けデータ解析講座 第2回 2017/12/29
東大生向けデータ解析講座 第2回 2017/12/29
西岡 賢一郎
TokyoR LT Rで連続データを離散化
TokyoR LT Rで連続データを離散化
tetsuro ito
二階堂愛と二階堂藍の違いについて
二階堂愛と二階堂藍の違いについて
show you
Hash functions
Hash functions
tabun_muri
トポロジカルデータ解析(仮)
トポロジカルデータ解析(仮)
Takahiro Yoshinaga
NetworkXによる語彙ネットワークの可視化
NetworkXによる語彙ネットワークの可視化
Shintaro Takemura
Rでプロット
Rでプロット
Tsukasa Fukunaga
データ分析スクリプトのツール化入門 - PyConJP 2016
データ分析スクリプトのツール化入門 - PyConJP 2016
Akinori Kohno
Twitterテキストのトピック分析
Twitterテキストのトピック分析
Nobuyuki Kawagashira
クリスマス?
クリスマス?
sasenomura
S09 t4 wrapup
S09 t4 wrapup
Takeshi Akutsu
Rでダイエット
Rでダイエット
Tatsuya Tojima
Sapporo20140709
Sapporo20140709
Kimikazu Kato
無駄にNeo4jを使っている日々
無駄にNeo4jを使っている日々
Toshi Harada
Pgunconf16 toast
Pgunconf16 toast
Toshi Harada
Pgunconf14 pg13-psql
Pgunconf14 pg13-psql
Toshi Harada
20190518 27th-chugoku db-lt-pg12
20190518 27th-chugoku db-lt-pg12
Toshi Harada
20190202-pgunconf-Access-Privilege-Inquiry-Functions
20190202-pgunconf-Access-Privilege-Inquiry-Functions
Toshi Harada
20190119 aws-study-pg-extension
20190119 aws-study-pg-extension
Toshi Harada
20181110 fok2018-pg-extension
20181110 fok2018-pg-extension
Toshi Harada
20171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-10
Toshi Harada
20171103 pg con-jp-lt-plpgsql
20171103 pg con-jp-lt-plpgsql
Toshi Harada
20171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-10
Toshi Harada
Contenu connexe
Tendances
TokyoR LT Rで連続データを離散化
TokyoR LT Rで連続データを離散化
tetsuro ito
二階堂愛と二階堂藍の違いについて
二階堂愛と二階堂藍の違いについて
show you
Hash functions
Hash functions
tabun_muri
トポロジカルデータ解析(仮)
トポロジカルデータ解析(仮)
Takahiro Yoshinaga
NetworkXによる語彙ネットワークの可視化
NetworkXによる語彙ネットワークの可視化
Shintaro Takemura
Rでプロット
Rでプロット
Tsukasa Fukunaga
データ分析スクリプトのツール化入門 - PyConJP 2016
データ分析スクリプトのツール化入門 - PyConJP 2016
Akinori Kohno
Twitterテキストのトピック分析
Twitterテキストのトピック分析
Nobuyuki Kawagashira
クリスマス?
クリスマス?
sasenomura
S09 t4 wrapup
S09 t4 wrapup
Takeshi Akutsu
Rでダイエット
Rでダイエット
Tatsuya Tojima
Sapporo20140709
Sapporo20140709
Kimikazu Kato
Tendances
(12)
TokyoR LT Rで連続データを離散化
TokyoR LT Rで連続データを離散化
二階堂愛と二階堂藍の違いについて
二階堂愛と二階堂藍の違いについて
Hash functions
Hash functions
トポロジカルデータ解析(仮)
トポロジカルデータ解析(仮)
NetworkXによる語彙ネットワークの可視化
NetworkXによる語彙ネットワークの可視化
Rでプロット
Rでプロット
データ分析スクリプトのツール化入門 - PyConJP 2016
データ分析スクリプトのツール化入門 - PyConJP 2016
Twitterテキストのトピック分析
Twitterテキストのトピック分析
クリスマス?
クリスマス?
S09 t4 wrapup
S09 t4 wrapup
Rでダイエット
Rでダイエット
Sapporo20140709
Sapporo20140709
Plus de Toshi Harada
無駄にNeo4jを使っている日々
無駄にNeo4jを使っている日々
Toshi Harada
Pgunconf16 toast
Pgunconf16 toast
Toshi Harada
Pgunconf14 pg13-psql
Pgunconf14 pg13-psql
Toshi Harada
20190518 27th-chugoku db-lt-pg12
20190518 27th-chugoku db-lt-pg12
Toshi Harada
20190202-pgunconf-Access-Privilege-Inquiry-Functions
20190202-pgunconf-Access-Privilege-Inquiry-Functions
Toshi Harada
20190119 aws-study-pg-extension
20190119 aws-study-pg-extension
Toshi Harada
20181110 fok2018-pg-extension
20181110 fok2018-pg-extension
Toshi Harada
20171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-10
Toshi Harada
20171103 pg con-jp-lt-plpgsql
20171103 pg con-jp-lt-plpgsql
Toshi Harada
20171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-10
Toshi Harada
20170819 ocd-l tthon-pgdev
20170819 ocd-l tthon-pgdev
Toshi Harada
Ntt tx-study-postgre sql-10
Ntt tx-study-postgre sql-10
Toshi Harada
Jpug study-postgre sql-10-pub
Jpug study-postgre sql-10-pub
Toshi Harada
Chugoku db 20th-postgresql-10-pub
Chugoku db 20th-postgresql-10-pub
Toshi Harada
Pgconf asia-201612203-pg reversi-ja
Pgconf asia-201612203-pg reversi-ja
Toshi Harada
Pgconf asia-201612203-pg reversi
Pgconf asia-201612203-pg reversi
Toshi Harada
Kof2016 postgresql-9.6
Kof2016 postgresql-9.6
Toshi Harada
Chugoku db 17th-lt-kly
Chugoku db 17th-lt-kly
Toshi Harada
Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6
Toshi Harada
Osc shimane-2016-do-postgres-dream-of-graph-database
Osc shimane-2016-do-postgres-dream-of-graph-database
Toshi Harada
Plus de Toshi Harada
(20)
無駄にNeo4jを使っている日々
無駄にNeo4jを使っている日々
Pgunconf16 toast
Pgunconf16 toast
Pgunconf14 pg13-psql
Pgunconf14 pg13-psql
20190518 27th-chugoku db-lt-pg12
20190518 27th-chugoku db-lt-pg12
20190202-pgunconf-Access-Privilege-Inquiry-Functions
20190202-pgunconf-Access-Privilege-Inquiry-Functions
20190119 aws-study-pg-extension
20190119 aws-study-pg-extension
20181110 fok2018-pg-extension
20181110 fok2018-pg-extension
20171106 ntt-tx-postgre sql-10
20171106 ntt-tx-postgre sql-10
20171103 pg con-jp-lt-plpgsql
20171103 pg con-jp-lt-plpgsql
20171028 osc-nagaoka-postgre sql-10
20171028 osc-nagaoka-postgre sql-10
20170819 ocd-l tthon-pgdev
20170819 ocd-l tthon-pgdev
Ntt tx-study-postgre sql-10
Ntt tx-study-postgre sql-10
Jpug study-postgre sql-10-pub
Jpug study-postgre sql-10-pub
Chugoku db 20th-postgresql-10-pub
Chugoku db 20th-postgresql-10-pub
Pgconf asia-201612203-pg reversi-ja
Pgconf asia-201612203-pg reversi-ja
Pgconf asia-201612203-pg reversi
Pgconf asia-201612203-pg reversi
Kof2016 postgresql-9.6
Kof2016 postgresql-9.6
Chugoku db 17th-lt-kly
Chugoku db 17th-lt-kly
Chugoku db 17th-postgresql-9.6
Chugoku db 17th-postgresql-9.6
Osc shimane-2016-do-postgres-dream-of-graph-database
Osc shimane-2016-do-postgres-dream-of-graph-database
Dernier
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
Dernier
(9)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
時系列データ型(Int4)をつくってみた
1.
時系列データ型を つくってみた ぬこ@横浜 (@nuko_yokohama)
2.
みなさん、こんにちは 楽しい PostgreSQL 拡張作成ライフを お過ごしでしょうか?
3.
今回のテーマ 時系列データ型
4.
あるカラムがいつの時点で どういった値だったのかを 知りたいときって ありませんか。 ありませんかそうですか。 (´ ・
ω ・` )
5.
ということで、 役に立つのかどうかは不明だが そんなデータ型をなんとなく 作ってみたくなったので 作ってみた。
6.
ということで、 役に立つのかどうかは不明だが そんなデータ型をなんとなく 作ってみたくなったので 作ってみた。
7.
コンセプト データ型に時系列を加えてみる 列値に履歴情報を持つ。 きちんと拡張すれば監査とかに使えるかも?
8.
時系列データ型の実装 ・履歴追記データ型 (int4 用
)
9.
型に対する入出力関数 今回は整数型のプロトタイプを作成する。 可変長データ型になると少し面倒。 データタイプ名: h_int4 ヘッダ(世代数、最終更新タイムスタンプ) エントリ(タイムスタンプ、データ実体) → 監査目的にするなら、ユーザ情報も格納すべき? (今回は追加していない)
10.
こんな感じ ヘッダ 世代数 最終更新タイムスタンプ エントリ タイムスタンプ データ実体 (INT) タイムスタンプ データ実体 (INT) 世代数分、繰り返し データ実体が可変長の場合は、各エントリの長さ情報も エントリ内のヘッダに必要になる。ちょい面倒。 (ヘッダ部にインデックス的な情報も必要かも)
11.
型に対する入出力関数 ・入力:入力値から 1 世代分の履歴型を 生成して追加 ・出力:最新の世代の値を取り出し ・バイナリ入力:必要か? ・バイナリ出力:トリガで必要か?
12.
型に関する操作関数(1) ・世代数取得 ・全ヒストリの取得 ・世代番号指定による取り出し ・タイムスタンプによる取り出し ・タイムスタンプに一番近い過去のもの ・タイムスタンプに一番近い未来のもの ・世代の消去(最新世代のみを残す)
13.
型に関する操作関数(2) ・タイムスタンプ指定つきの履歴追加 ※未来の時刻と値を事前にセットする 未来のタイムスタンプを指定して、一定時間を過ぎると勝手に 値が変わる機能があると嬉しかったりするだろうか? この場合、デフォルトの評価値が最新世代のもの、ではなく カレントタイムスタンプより過去のものとかいう評価が必要
14.
型に関する演算関数 ・通常の四則演算関 (add/sub/mul/div/mod) ・集約演算関数 ( SUM/MAX/MIN
など)
15.
インデックス? ・対応できるかどうか微妙。 ・というか型の変動性分類上、 対応できない気がする・・・。
16.
関数の変動性分類 そもそも、こういう型を評価する関数の 変動性分類はどうなるのか。 Immutable/Stable とは言えないか・・・。 → フツーに考えると
volatile に分類すべきなんだろかなあ。 最適化や関数インデクスのことを考えると微妙なことになる。 → 検索条件となりうるカラムに使うのは難しいかも (別にインデクス検索されるカラムがあり、 その後の Filter 句として使うくらいか)
17.
デモ向け実装 ・時間がなくて C 関数できちんと実装 できなかった・・・ ・今回はプロトタイプということで
PL/pgSQL でそれっぽいものを。
18.
デモ
19.
デモ(1) h_int4 型を登録 h_int4 型カラムを持つテーブルを作成 id=2
の id=3 の id=3 の id=4 の 4 件 INSERT data を更新( 200→210 ) data を更新( 300→310 ) data を更新( 310→320 ) data を更新( 400→410 ) 普通に SELECT 世代番号指定で SELECT
20.
デモ(2) id=4 の data
を更新( 10 秒後に 410→420 ) id=4 の data を更新( 20 秒後に 420→430 ) 普通に SELECT 10 秒後に SELECT 20 秒後に SELECT
21.
デモ(図) id = 1 100 id
= 2 200 id = 3 300 id = 4 デモ環境 CentOS 6.3 PostgreSQL 9.3.2 400 INSERT 210 310 320 10 秒後 20 秒後 410 UPDATE UPDATE UPDATE 420 UPDATE 現世代 SELECT 前世代 430 UPDATE UPDATE 直後 SELECT t 10 秒後 20 秒後
22.
トリガとの組み合わせ トリガ関数 更新前の値と更新後の値を入力 更新後の値を更新前の値に追記 トリガ設定 BEFORE EACH ROWS
/列トリガ UPDATE test SET data = append(data, 100) WHERE …; ↓ UPDATE test SET data = 100 WHERE …;
23.
今後 C 関数できちんと実装 可変長型への対応など
24.
おしまい
Télécharger maintenant