Crate.IO ã¯ã©ã¦ããã¤ãã£ããªæ°ãããã¼ã¿ãã¼ã¹ã¨ã³ã¸ã³
Crate.IOã¨ããæ°ããDBã¨ã³ã¸ã³ã 2014 TCã®ã¢ã¯ã¼ããã¨ã£ã¦ãããããããããããã1å¹´è¿ãç«ã£ã¦ãã¾ãããæ£ç´ãªã¨ãããæµè¡ã£ã¦ããã®ãå®ãã§ã¯ãªãã§ãããã誰ããããªããã¨ã®ã»ããé¢ç½ãã®ã§ããã¾ãã
Crate.IOã¨ã¯?
Crate ã§ã°ã°ãã¨ãæ¨ã®ç®±ã®çµµãåºã¦ããããRustã®ããã±ã¼ã¸ããã¸ã£ï¼ã¨ãã¶ãã®ã§ãCrate.IOã¨ãã¾ããæ£ç´ãCrateã¯ããªãã°ã°ãã«ããè¨èã§ãããã£ã¨ã¾ã¨ãã¨ãã¨
- ãã«ããã¹ã¿å
- ããããã¯ã©ã¦ãåæ
- ãRDBã§å
¨é¨ããã®ãããªãã¦ãNoSQLã§ãããããããNoSQLã®ä¸ã§ãç¨éãã¨ã«åå²ããããã¨ããæè¿ã®é¢¨æ½®ãå
¨å¦å®
å ¨é¨ Crate.IOã§ããï¼
- ã¯ã©ã¤ã¢ã³ãã©ã¤ãã©ãªã¯ããã»ã¨ãã©ã®è¨èªã§ç¨ææ¸ã¿
- ãµã¼ãå´ã¯ã¼ãã³ã³ãã£ã°ã§ããã(ããã«ããã)
ãªããªãé
åç㪠ãããªãã
ã§ãããï¼æµè¡ããã©ããã¯ããããªãã§ããã
ã¢ããªéçºè è¦ç¹
ã¤ã³ãã©çã«ãããé¢ç½ãã¨ããã¢ããªéçºä¸æå³ããªããã°ããããæ¡ç¨ãã価å¤ãããã¾ãããã¾ãã¦ãæ°ããDBã¨ã³ã¸ã³ã§ããå
¨ä½çãªå°è±¡ã¨ãã¦ã¯ãéçºè
ã«åªããã¨æãã¾ãã
ãªãã¨ãã£ã¦ã
SQLãéãï¼
Crate SQL — Crate documentation
ãã£ã±ãSQLã¯å¼·ãï¼ ä¸è¨ããã¥ã¢ã«æµãèªã¿ã
DDL
æ®éã®RDBã®DDLã¨ã»ã¼å¤ããã¾ããããã·ã£ã¼ãã£ã³ã°ã»ã«ã¼ãã£ã³ã°ãæèããæ§æãããã¾ãã
DDL ããã©ã«ãã§ã·ã£ã¼ãã£ã³ã°5æ¬
Crate supports sharding natively, it even uses 5 shards by default if not further defined.
ãããã§ãã5æ¬ä»¥å¤ã ã¨DDLã§æå®ããã°OKã
Routing ããã©ã«ãã¯Primary Key
If primary key constraints are defined, the routing column definition can be omitted as primary key columns are always used for routing by default.
Routingã¨ããã¨èãæ £ãã¾ããããæè¬ã·ã£ã¼ããã¼ã¨æããã°è¯ããããPrimary Keyç¡ãã§ãç¹å®ã®ã«ã©ã ãã·ã£ã¼ããã¼(clusterd by) ã«æå®ããã
Replication ããã©ã«ãã§1ã¬ããªã«
Defining the number of replicas is done using the number_of_replicas property.
ä½ç®æã«ã¬ããªã±ã¼ã·ã§ã³ãããããDDLã§æå®ãã¡ããã¾ãï¼ããã¥ã¢ã«ã«ããã¨æ大4ã¤ãããã¾ã§ããã°ç¤ç³ã§ãããã
ãããã§ããï¼
Note The number of replicas can be changed at any time.
ãªãã ã¨ï¼
DDLã¾ã¨ã
ä»ã«ã Full Text ã Partitioned Tableãªã©ãã¸ã¸ã¤ããã¤ã¤ãæ©è½ãããèãæ
£ããªã Analyzer
ã¨ããç©ããã£ãããããã¥ã¢ã«èªãã ãã§ãè
¹ãã£ã±ãã
ç§ãæç²ããåã ãã§ã¾ã¨ãã¾ãã¨ã
- ã·ã£ã¼ãã£ã³ã°ã»ã«ã¼ãã£ã³ã°ã»ã¬ããªã±ã¼ã·ã§ã³çãæ¬æ¥ã¯ã¦ã©(ã¤ã³ãã©å´)ã§å¸åãã¦ããé¨åããæãã£ãããªã¢ã(=DDL)ã«åºã¦ãã
æåãããããã«ã¹ã±ã¼ã«ãããããæ³å®ãã¦ä½ããã¦ããã®ã§ããããã®æ©è½ãDDLã§æå®ãã¾ããã²ã¨ãã¨ã§è¨ãã¨ã ãªããMongoDBã£ã½ã
ã§ãããMongoDBãããããä¸æ©è¸ã¿è¾¼ãã§ããæãã¯ãã¾ããã¤ã³ãã©(ãµã¼ã)å´ãç¥ãã¨ããã¯æ確ã«ãªãã¾ãã
Query
https://crate.io/docs/reference/sql/queries.html#object-arrays
åºæ¬çãªSQLã¯éãããã§ããããã®ä¸ã§ãæ°ã«ãªã£ãã®ããArrayã«å¯¾ããQueryã§ããããã試ãã¦ã¿ãã
Types
Objectåãªã©ãããç¨åº¦äºæ³ãã¤ããã®ãããã¾ãããã¦ã¼ã¹ã±ã¼ã¹ã«ãä¸ãããã¦ããã¸ãªç³»ã®Typeã¨é¢æ°ãããã¾ããè¤éãªãã¨ã¯åºæ¥ãªãã§ãããlat-longããè·é¢ã測ã£ããã¨ãã¯ã§ããããã§ãããã£ã¨è¤éãªæ©è½ã¯èªåã§æ¡å¼µããã
ã£ã¦ãã¨ã§ãããã
https://crate.io/docs/reference/sql/data_types.html#geo-point
https://crate.io/docs/reference/sql/scalar.html#geo-functions
Blob
https://crate.io/docs/reference/blob.html
blobãã¼ãã«ã¯DDLã§å®ç¾©ãã¦ãUpload & Download 㯠HTTPçµç±ã§ãããããã®DDLãå¿è« ã·ã£ã¼ããã¬ããªã±ã¼ã·ã§ã³æ°ãæå®ã§ããããã§ãã
å種è¨èªã®å¯¾å¿ç¶æ³
å®å¿ãã¦ãã ãããã»ã¼å ¨é¨ã§ãã
https://crate.io/docs/getting-started/clients/
ä¸ãä¸è¦ã¤ãããªãã£ãã¨ãã¦ããHTTPã®RESTãå©ãã ãã£ã½ãã®ã§ãå¤å移æ¤ã¯æ¥½åã
ã¢ããªå´ã®ã¾ã¨ã
å®ã®ã¨ãããã¤ã³ãã©å´ã®æ¹ã楽åãã£ããã¼ãªãã§ããããæ¸ããã¨æã£ã¦ã¾ãããåå°½ãã¾ããã次åæ¸ãã¾ãã
ã¢ããªå´ãæ¹ãã¦è¦ãã¨çµæ§ããã§ããï½
- SQLã使ããã!
- ã·ã£ã¼ãã£ã³ã°ã»ã«ã¼ãã£ã³ã°ã»ã¬ããªã±ã¼ã·ã§ã³ãããããã¹ã¦DDLã§æå®ãã
- Blobã使ãããï¼ãUpload/Downloadã¯HTTP
- èªè¨¼æ©æ§ã¯ä»ã®ã¨ããç¡ã(ããã¥ã¢ã«èªãã åã ã¨)
ä»å¾Crate.IOã®ä¸»æ¦å ´ã§ã¯ãããããèªè¨¼æ©æ§ã¯å¿
è¦ã¨ãªããããèªè¨¼ãå
¥ããä¸ã§ãã©ããããã®ã¹ãã¼ãã確ä¿ã§ãããã
æè¿ã®ååã¨ãã¦ãESã¨ã®é£æº(ãã¼ã¿ã®ãã¤ã°ã¬ã¼ã·ã§ã³?)ã話é¡ã«ãªã£ã¦ããããã§ããã³ã³ãã¸ããå¾ã»ã©æ¸ãã¤ããã