1 |
dpavlin |
257 |
#!/usr/bin/perl |
2 |
|
|
|
3 |
|
|
use lib 'lib'; |
4 |
|
|
use Sack::Shard; |
5 |
|
|
|
6 |
|
|
use Data::Dump qw(dump); |
7 |
|
|
use autodie; |
8 |
|
|
|
9 |
|
|
use MongoDB; |
10 |
|
|
|
11 |
dpavlin |
261 |
my $name = 'pxelator'; |
12 |
dpavlin |
257 |
my $shard_size = 5000; |
13 |
|
|
|
14 |
|
|
|
15 |
|
|
my $connection = MongoDB::Connection->new(host => '10.60.0.91', port => 27017); |
16 |
|
|
my $database = $connection->get_database('pxelator'); |
17 |
|
|
my $collection = $database->get_collection('audit'); |
18 |
|
|
|
19 |
dpavlin |
261 |
my $q; |
20 |
|
|
#$q = {"package.name" => "dnsd", "source" => "upstream"}; |
21 |
dpavlin |
257 |
|
22 |
|
|
warn "# mongodb query: ", dump($q), $/; |
23 |
|
|
|
24 |
|
|
my $cursor = $collection->query($q); |
25 |
|
|
|
26 |
|
|
Sack::Shard::create( $name, $cursor->count, $shard_size ); |
27 |
|
|
|
28 |
|
|
while( my $o = $cursor->next ) { |
29 |
dpavlin |
261 |
$o->{_id} .= ''; # convert _id to scalar |
30 |
dpavlin |
257 |
Sack::Shard::add( $o ); |
31 |
|
|
} |
32 |
|
|
Sack::Shard::finish; |
33 |
|
|
|