keboola/storage-driver-teradata

Keboola Teradata 驱动程序

安装次数: 5,747

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 10

分支: 0

类型:项目


README

Keboola 的 Teradata 高级存储后端驱动程序

设置 Teradata

-- set session database of your choice
SET SESSION DATABASE <your root database>;

--There are two options how to preceded

-- Option 1 (preferred): Create user and run all tests with it
CREATE USER <nickname>_driver_teradata FROM <your root database>
AS PERMANENT = 1e9,
SPOOL = 1e9
PASSWORD = PassW0rd#, -- set your password :)
DEFAULT DATABASE=<nickname>_driver_teradata;

-- grant rights
GRANT CREATE DATABASE, DROP DATABASE, CREATE USER, DROP USER ON <nickname>_driver_teradata TO <nickname>_driver_teradata;
GRANT CREATE ROLE, DROP ROLE TO <nickname>_driver_teradata WITH GRANT OPTION;
GRANT EXECUTE ON SPECIFIC FUNCTION SYSLIB.AbortSessions TO <nickname>_driver_teradata WITH GRANT OPTION;

-- Option 2: Create database and use you current user to run tests
-- you use has to have CREATE DATABASE, DROP DATABASE, CREATE USER, DROP USER, CREATE ROLE, DROP ROLE grants

-- create root database for driver, use memory allocation of you choice 
CREATE DATABASE <nickname>_driver_teradata FROM <your root database>
    AS PERMANENT = 1e9,
       SPOOL = 1e9;

setup envs

TERADATA_HOST=
TERADATA_USERNAME=
TERADATA_PASSWORD=
TERADATA_PORT=1025
TERADATA_ROOT_DATABASE=<nickname>_driver_teradata

Mac:在 VirtualBox 中本地 Teradata 服务器设置 HOST 为 host.docker.internal

设置 AWS 凭据

您的访问密钥必须有权访问 keboola-drivers 存储桶以下载 Teradata odbc 驱动程序和工具。

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
# bucket is needed for import/export tests
AWS_S3_BUCKET=
AWS_REGION=eu-central-1

构建 Docker 镜像

docker-compose build

Xdebug

要使用 xdebug 运行,请使用 dev-xdebug 容器而不是 dev

生成 protobuf 代码

docker-compose run --rm dev composer protobuf

生成 protobuf 文档

文档将放在 docs 文件夹中。有关更多选项,请参阅文档

docker run --rm \
  -v $(pwd)/docs:/out \
  -v $(pwd)/proto:/protos \
  pseudomuto/protoc-gen-doc

测试

使用以下命令运行测试。

docker-compose run --rm dev composer tests

要运行单独的测试,首先生成测试 protobuf 类

docker-compose run --rm dev composer protobufTests

然后运行 phpunit

docker-compose run --rm dev composer phpunit -- --filter=TeradataDriverClientTest

要禁用重试,复制 phpunit-retry.xml.dist

cp phpunit-retry.xml.dist phpunit-retry.xml

调试查询

要调试测试期间执行的查询,设置 DEBUG=1 环境变量

代码质量检查

#run all bellow but not tests
docker-compose run --rm dev composer check

#phplint
docker-compose run --rm dev composer phplint

#phpcs
docker-compose run --rm dev composer phpcs

#phpcbf
docker-compose run --rm dev composer phpcbf

#phpstan
docker-compose run --rm dev composer phpstan

完整的 CI 工作流程

此命令将运行所有检查并运行测试

docker-compose run --rm dev composer ci

许可证

MIT 许可证,请参阅 LICENSE 文件。