Skip to content

Instantly share code, notes, and snippets.

#NoSQLデータモデリング技法

原文:NoSQL Data Modeling Techniques « Highly Scalable Blog

I translated this article for study. contact matope[dot]ono[gmail] if any problem.

NoSQLデータベースはスケーラビリティ、パフォーマンス、一貫性といった様々な非機能要件から比較される。NoSQLのこの側面は実践と理論の両面からよく研究されている。ある種の非機能特性はNoSQLを利用する主な動機であり、NoSQLシステムによく適用されるCAP定理がそうであるように分散システムの基本的原則だからだ。一方で、NoSQLデータモデリングはあまり研究されておらず、リレーショナルデータベースに見られるようなシステマティックな理論に欠けている。本稿で、私はデータモデリングの視点からのNoSQLシステムファミリーの短い比較といくつかの共通するモデリングテクニックの要約を解説したい。

本稿をレビューして文法を清書してくれたDaniel Kirkdorfferに感謝したいと思う

@drillbits
drillbits / main.go
Created November 5, 2020 07:03
check client TLS
$ go run main.go | jq .
{
"given_cipher_suites": [
"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
import os
import flask
from google.cloud.logging import Client
from google.cloud.logging.resource import Resource
def cloud_functions_http_trigger_logcontext(request: flask.Request):
project_id = os.environ.get("GCLOUD_PROJECT")
region = os.environ.get("FUNCTION_REGION")
[10/02/17 15:39:42] Toru Furukawa (tof): show は、デフォルトで見えてないものを見せるような動作じゃないかな。
[10/02/17 15:39:59] Toru Furukawa (tof): コートの前をはだけて、
[10/02/17 15:40:04] Toru Furukawa (tof): ちんこを show
@drillbits
drillbits / main.go
Last active September 13, 2019 09:52
memdocstore: slice field breaks localfile
package main
import (
"context"
"fmt"
"io"
"io/ioutil"
"log"
"path/filepath"
"time"
from: Hiroki Maekawa <hiroki.maekawa@nextmove.co.jp>
to: neji@drillbits.jp
date: Apr 22, 2019, 12:18 PM
subject: Fintechヘッドハンター前川です
mailed-by: drillbits.jp
signed-by: nextmove-co-jp.20150623.gappssmtp.com
security: Standard encryption (TLS) Learn more
drillbits様
@drillbits
drillbits / SCTE35 Decoder
Created October 16, 2018 02:16 — forked from alastairmccormack/SCTE35 Decoder
SCTE-35 Parser/Decoder in Python
#!/usr/bin/python
'''
SCTE-35 Decoder
The MIT License (MIT)
Copyright (c) 2014 Al McCormack
@drillbits
drillbits / syslogtest.py
Created June 26, 2018 02:41
Python, syslog, fluentd
from logging import getLogger, StreamHandler, Formatter
from logging.handlers import SysLogHandler
import logging
from socket import gethostname
logger = getLogger(__name__)
logger.setLevel(logging.DEBUG)
syslog_fmt = Formatter(
fmt='%(asctime)s %(hostname)s %(name)s[%(process)s]: %(message)s',
@drillbits
drillbits / video_to_image_per_frame.sh
Created February 15, 2018 02:48
Convert video to images per N frame
#!/bin/bash
if [ $# -lt 1 ]; then
echo "${0} requires more than 1 arguments"
echo "${0} input [output] [framestep]"
exit 1
fi
INPUT=${1}
OUTPUT=${2:-img%03d.jpg}
FRAMESTEP=${3:-1}
@drillbits
drillbits / request.go
Created November 22, 2017 09:15
Read http.Request.Body and rewind
func readRewindRequest(r *http.Request) []byte {
var b []byte
if r.Body != nil {
b, _ = ioutil.ReadAll(r.Body)
}
r.Body = ioutil.NopCloser(bytes.NewBuffer(b))
return b
}