コード例 #1
0
 public static function setUpBeforeClass()
 {
     parent::setUpBeforeClass();
     $dataSourceFile = __DIR__ . "/data_source.yml";
     $config = Yaml::parse(file_get_contents($dataSourceFile));
     $dp = new ArrayDataProvider($config);
     $awsConfig = $dp->getMandatory('aws', DataProviderInterface::ARRAY_TYPE);
     self::$s3Region = $dp->getMandatory('aws.region', DataProviderInterface::STRING_TYPE);
     self::$sts = new StsClient($awsConfig);
     $s3 = new S3Client($awsConfig);
     self::$localFs = new ExtendedFilesystem(new ExtendedLocal(sys_get_temp_dir()));
     self::$s3Fs = new ExtendedFilesystem(new ExtendedAwsS3Adapter($s3, $dp->getMandatory('aws.s3bucket', DataProviderInterface::STRING_TYPE), $dp->getMandatory('aws.s3prefix', DataProviderInterface::STRING_TYPE)));
     self::$rs = RedshiftConnection::getConnection($dp->getMandatory('redshift', DataProviderInterface::ARRAY_TYPE));
 }
コード例 #2
0
ファイル: test.php プロジェクト: oasmobile/php-redshift
 * Date: 2016-01-11
 * Time: 17:52
 */
require_once 'vendor/autoload.php';
use Oasis\Mlib\AwsWrappers\S3Client;
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);