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)); }
* 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);