我有一个大型数据库,其中包含用JSON编写的分析数据.
我想过滤掉数据不正确的行:
'{"hello": "world''{"products": [1,2,3]}'并将遗漏'{"products": 1}'我想做那样的事情:
select *
from analytics
where (is_correct_json(json::json))
and (is_array(json::json->>'products'))
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
在我的Extjs4应用程序中,我有一个网格和一个表单.
用户模型:
Ext.define('TestApplication.model.User', {
extend: 'Ext.data.Model',
fields: [
{ name: 'id', type: 'int', useNull: true },
{ name: 'email', type: 'string'},
{ name: 'name', type: 'string'},
{ name: 'surname', type: 'string'}
],
hasMany: { model: 'Agency', name: 'agencies' },
});
Run Code Online (Sandbox Code Playgroud)
和原子能机构:
Ext.define('Magellano.model.Agency', {
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: 'int', useNull: true},
{name: 'name', type: 'string'}
]
});
Run Code Online (Sandbox Code Playgroud)
然后在我的表单中我创建了复选框:
[...]
initComponent: function() {
var store = Ext.getStore('Agencies');
var checkbox_values = {xtype: 'checkboxfield', name: 'agencies[]'};
var checkboxes = []
store.each(function(record){ …Run Code Online (Sandbox Code Playgroud) 我们正在使用cassandra 2.0.17,我们有一个50%选择,40%更新和10%插入(无删除)的表.
为了获得这种表的高读取性能,我们发现建议使用LeveledCompactionStrategy(它应该保证99%的读取将从单个SSTable中完成).每天当我跑步时nodetool cfhistograms,每次阅读都会看到越来越多的SSTtables.第一天我们有1,比我们有1,2,3 ...
今天早上我看到了这个:
ubuntu@ip:~$ nodetool cfhistograms prodb groups | head -n 20
prodb/groups histograms
SSTables per Read
1 sstables: 27007
2 sstables: 97694
3 sstables: 95239
4 sstables: 3928
5 sstables: 14
6 sstables: 0
7 sstables: 19
Run Code Online (Sandbox Code Playgroud)
describe组返回:
CREATE TABLE groups (
...
) WITH
bloom_filter_fp_chance=0.010000 AND
caching='KEYS_ONLY' AND
comment='' AND
dclocal_read_repair_chance=0.100000 AND
gc_grace_seconds=172800 AND
index_interval=128 AND
read_repair_chance=0.000000 AND
replicate_on_write='true' AND
populate_io_cache_on_flush='false' AND
default_time_to_live=0 AND
speculative_retry='99.0PERCENTILE' AND
memtable_flush_period_in_ms=0 AND
compaction={'class': 'LeveledCompactionStrategy'} AND
compression={'sstable_compression': 'LZ4Compressor'}; …Run Code Online (Sandbox Code Playgroud) 我应该在Rails中放置SQL查询的最佳实践是什么?
我应该在模型中创建方法,例如:find_all_public_items,其中我使用了具有所有条件的find方法,然后在控制器中使用它们.就像我在一个地方有所有的查询,但我错过了每个查询应该完全适合需要的灵活性.
我应该只在控制器中使用find/find_by_sql - 这样我就不会创建数以千计的方法,但是我无法控制控制器如何从数据库中吸取数据.
我如何为我的模型编写表单,我正在使用globalize3进行翻译.我找不到任何示例,我在代码中找不到任何助手.我们的想法是将所有内容都放在一个表格中
text_field:title
text_field:title_fr
text_field:title_en
等等....
感谢您指点我的一些代码示例.
我刚刚在我的应用程序中看到了一个非常慢的查询.表'新闻'有超过600.000条记录.
当我执行:
SELECT news.id FROM `news` WHERE (newstime between '2012-01-16 00:00:00' AND '2012-01-16 23:59:59') AND ((MATCH(titolo, testo) AGAINST('"Public Administration" "SOMETHING" "ELSE" "ROMA" "MILANO"' IN BOOLEAN MODE))) ORDER BY newstime DESC LIMIT 23 OFFSET 0;
23 rows in set (26.32 sec)
Run Code Online (Sandbox Code Playgroud)
出于某种原因,MySQL没有执行范围选择(每天只有10,000条记录),它看起来像在整个表上搜索,因为当我从子查询中选择时:
SELECT id FROM(SELECT * from news where newstime between '2012-01-16 00:00:00' AND '2012-01-16 23:59:59') as N where ((MATCH(titolo, testo) AGAINST('"Public Administration" "FIAT" "SOMETHING" "ELSE" "ROMA" "MILANO"' IN BOOLEAN MODE))) ORDER BY newstime DESC LIMIT 23 OFFSET 0;
23 rows …Run Code Online (Sandbox Code Playgroud) forms ×2
cassandra ×1
checkbox ×1
extjs ×1
json ×1
localization ×1
model ×1
models ×1
mysql ×1
optimization ×1
postgresql ×1
range ×1
sql ×1