public function testDataImport($gzipped = false)
 {
     $data = [];
     for ($i = 1; $i <= 5; ++$i) {
         $row = [];
         for ($j = 1; $j <= 7; ++$j) {
             $row['a' . $j] = $j + $i * 10;
         }
         $data[] = $row;
     }
     $filename = $gzipped ? "data.gz" : "data";
     $out = fopen('php://memory', 'r+');
     $writer = new DrdStreamWriter($out, self::FIELDS);
     foreach ($data as $row) {
         $writer->writeRecord($row);
     }
     rewind($out);
     $data = stream_get_contents($out);
     if ($gzipped) {
         $data = gzencode($data);
     }
     self::$localFs->put($filename, $data);
     fclose($out);
     $importer = new RedshiftImporter(self::$rs, self::$localFs, self::$s3Fs, self::$s3Region, self::$sts);
     $importer->importFromFile('data', 'php_redshift_test', self::FIELDS, $gzipped, true);
     $stmt = self::$rs->prepare("SELECT COUNT(*) FROM php_redshift_test");
     $stmt->execute();
     $result = $stmt->fetchColumn();
     self::$localFs->delete($filename);
     self::assertEquals(5, $result);
 }
Ejemplo n.º 2
0
#! /usr/local/bin/php
<?php 
/**
 * Created by PhpStorm.
 * User: minhao
 * Date: 2016-01-12
 * Time: 00:25
 */
use Aws\S3\S3Client;
use Oasis\Mlib\FlysystemWrappers\ExtendedAwsS3Adapter;
use Oasis\Mlib\FlysystemWrappers\ExtendedFilesystem;
require_once 'vendor/autoload.php';
$adapter = new ExtendedAwsS3Adapter(new S3Client(['profile' => 'dmp-user', 'region' => 'us-east-1', 'version' => 'latest']), 'brotsoft-dmp', 'test');
$fs = new ExtendedFilesystem($adapter);
$fs->put('haha', 'lol');
$uri = $adapter->getPreSignedUrl('haha');
var_dump($uri);
Ejemplo n.º 3
0
use Oasis\Mlib\AwsWrappers\StsClient;
use Oasis\Mlib\FlysystemWrappers\ExtendedAwsS3Adapter;
use Oasis\Mlib\FlysystemWrappers\ExtendedFilesystem;
use Oasis\Mlib\FlysystemWrappers\ExtendedLocal;
use Oasis\Mlib\Redshift\DrdStreamWriter;
use Oasis\Mlib\Redshift\RedshiftConnection;
use Oasis\Mlib\Redshift\RedshiftExporter;
use Oasis\Mlib\Redshift\RedshiftImporter;
$awsConfig = ['profile' => "oasis-minhao", 'region' => 'ap-northeast-1'];
$sts = new StsClient(['profile' => 'oasis-minhao', 'region' => 'ap-northeast-1']);
$rs = RedshiftConnection::getConnection(["host" => "oas-dmp-test.cikskyn4dlgm.ap-northeast-1.redshift.amazonaws.com", "port" => 5439, "dbname" => "oasdmp", "user" => "oasdmp", "password" => "NU9qEG3nR8"]);
$localFs = new ExtendedFilesystem(new ExtendedLocal('/tmp'));
$s3Fs = new ExtendedFilesystem(new ExtendedAwsS3Adapter(new S3Client($awsConfig), "minhao-dev", "/tmp"));
$importer = new RedshiftImporter($rs, $localFs, $s3Fs, 'ap-northeast-1', $sts);
$exporter = new RedshiftExporter($rs, $localFs, $s3Fs, 'ap-northeast-1', $sts);
$columns = explode(",", "a1,a2,a3,a4,a5,a6,a7");
$dataPath = 'data';
$localFs->put($dataPath, '');
$drd_os = $localFs->appendStream($dataPath);
$writer = new DrdStreamWriter($drd_os, $columns);
for ($i = 0; $i < 10; ++$i) {
    $data = [];
    for ($j = 0; $j < 7; ++$j) {
        $data['a' . ($j + 1)] = mt_rand(1, 10) + $j * 10;
    }
    $writer->writeRecord($data);
}
fclose($drd_os);
//$importer->importFromFile('/out/testing', 'test', $columns, true, true);
//$importer->importFromFile('ddd', 'test', $columns, true, true);
$exporter->exportToFile('/out//testing', 'SELECT * FROM test', false, true, true);
 /**
  * @depends testAppendStreamOnNewFile
  *
  * @param ExtendedFilesystem $fs
  *
  * @return ExtendedFilesystem
  */
 public function testFinder(ExtendedFilesystem $fs)
 {
     $fs->put('a/b/c.txt', 'aaa');
     $fs->put('a/b/d.txt', 'aaa');
     $fs->put('a/b/d.jpg', 'aaa');
     $fs->put('a/b/x.txt', 'aaa');
     $fs->put('a/c/e.txt', 'aaa');
     $finder = $fs->getFinder('a');
     $finder->path('#b/[cd]\\.txt#');
     $this->assertEquals(count($finder), 2);
 }