sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
进入容器:docker exec -it 容器ID /bin/bash
4、Astro CLI 安装 https://docs.astronomer.io/astro/cli/install-cli
curl -sSL install.astronomer.io | sudo bash -s
astronomer/astro-cli info installed /usr/local/bin/astro
初始化astro项目:astro dev init 修改airflow web服务端口号:astro config set webserver.port 18080 修改airflow 元数据库端口号:astro config set postgres.port 15445
启动项目:astro dev start (带环境变量启动: astro dev start --env .env )
停止项目:astro dev stop
重启项目:astro dev restart
查看 airflow schedule的运行日志: astro dev logs -s
修改airflow默认的时区参数:
1)首先分别进入airflow webserver 和 airflow scheduler容器
执行 astro dev bash -w 进入 airflow webserver
执行 astro dev bash -s 进入 airflow scheduler
2)然后分别在webserver和scheduler容器内修改时区参数
sed -i 's/default_timezone = utc/default_timezone = Asia\/Shanghai/g' "$AIRFLOW_HOME"/airflow.cfg
sed -i 's/default_ui_timezone = UTC/default_ui_timezone = Asia\/Shanghai/g' "$AIRFLOW_HOME"/airflow.cfg
3)重启webserver和scheduler容器,使时区生效
airflow重跑task1任务历史数据:airflow dags backfill dag_name -s 2024-05-01 -e 2024-05-03 -t task1 (注:时间区间是左闭右开)
如需通过docker容器连接sql server, 需在容器上安装ODBC驱动。容器构建时会根据脚本自动安装,如果安装失败,则需进入 scheduler 上手动安装 odbc驱动
airflow默认账号密码:admin/admin
宿主机通过回环IP地址能访问docker里的airflow web应用(google-chrome "http://127.0.0.1:8080"),但是通过本机的IP地址就无法访问(google-chrome "http://本机IP地址:8080")。 原因是docker端口映射的问题:docker映射到本机的默认监听 127.0.0.1:8080 ,限制了其它地址的访问,此时通过本机的IP是无法访问成功的,需要修改本机监听地址为 0.0.0.0:8080才能在外网成功访问。 具体解决方案是:在项目的docker-compose.override.yml文件里添加任意IP端口映射,同时把端口改为18080:
ports:
- "18080:8080"
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql15-server
初始化:/usr/pgsql-15/bin/initdb -D /data/pgdata
设置自启动 sudo systemctl enable postgresql-15 sudo systemctl start postgresql-15
安装成功后,会自动创建操作系统用户:postgres(无密码)
alter user postgres with password 'hufw97fwfewwe';
修改端口号后,通过psql连接数据库: psql -p 15432
查看端口号: netstat -tlunp |grep 15432
创建用户和分配权限: create user datadev with password 'datadev331';
grant CONNECT on DATABASE sfydw to datadev;
\c sfydw
grant "pg_read_all_data" TO datadev;
grant usage on schema ads to datadev;
grant SELECT ON TABLE ads.ads_pm_zone_income_expend_m to datadev;
create user dataprd with password 'dataprdfwf98937f323';
ALTER ROLE "dataprd" SUPERUSER;
6、airbyte 安装 https://docs.airbyte.com/quickstart/deploy-airbyte
- 在
windows
环境下安装注意事项: (在本机可安装watt toolkit
工具以加速GitHub的访问)
1)查看当前使用的Linux发行版的版本:wsl -l -v
2)如是wsl1,需升级为2:wsl --set-version Ubuntu 2
3)执行安装: 默认用户名/密码为airbyte/password
(如在启动的时候,提示 empty compose file,则 手工下载文件:https://raw.githubusercontent.com/airbytehq/airbyte-platform/v0.56.0/docker-compose.yaml
如提示无环境变量,则手工下载文件:https://raw.githubusercontent.com/airbytehq/airbyte-platform/v0.56.0/.env)
git clone --depth=1 https://github.com/airbytehq/airbyte.git
cd airbyte
bash run-ab-platform.sh
重启项目:docker compose restart
启动项目:docker compose up
关闭项目:docker compose down
airbyte数据同步方式: Full Refresh | Overwrite : 全量采集 | 覆盖更新
Full Refresh | Append : 全量采集 | 追加更新
Incremental | Append : 增量采集(cdc或时间戳增量字段)| 追加更新
Incremental | Append + Deduped : 增量采集(cdc或时间戳增量字段)| upsert更新
初始化dbt项目:dbt init dtb_project
整个项目debug:dbt debug
整个项目编译:dbt compile
整个项目执行:dbt run
执行某一个dbt模型代码: dbt run --select tab123
带参数执行某一个dbt模型: dbt run --select tab123 --vars 'etl_date: 2023-11-11'