我无法使用docker compose在SQL Server内部连接。我想将数据从SQL Server直接传送到云存储,然后将数据发送到Big Query。
如何解决这个问题?
import json
from datetime import timedelta, datetime
from airflow import DAG
from airflow.models import Variable
from airflow.contrib.operators.bigquery_operator import BigQueryOperator
from airflow.contrib.operators.bigquery_check_operator import BigQueryCheckOperator
from airflow.contrib.operators.file_to_gcs import FileToGoogleCloudStorageOperator
from airflow.contrib.operators.gcs_to_bq import GoogleCloudStorageToBigQueryOperator
from airflow.contrib.operators.mysql_to_gcs import MySqlToGoogleCloudStorageOperator
default_args = {
'owner': 'Test Data',
'depends_on_past': True,
'start_date': datetime(2019, 5, 29),
'end_date': datetime(2019, 5, 30),
'email': ['email@clientx.com.br'],
'email_on_failure': True,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5),
}
# Set Schedule: Run pipeline once a day.
# Use cron to define exact time. Eg. 8:15am would be "15 08 * * *"
schedule_interval = "* * * * *"
# Define DAG: Set ID and assign default args and schedule interval
dag = DAG(
'bigquery_github_trends',
default_args=default_args,
schedule_interval=schedule_interval
)
extract = MySqlToGoogleCloudStorageOperator(
task_id='chama_extract',
mysql_conn_id='mysql_hml',
google_cloud_storage_conn_id='my_gcp_conn',
sql="""SELECT * FROM test""",
bucket='my_bucket',
filename='test/test{}.json',
schema_filename='schemas/test.json',
dag=dag)
load = GoogleCloudStorageToBigQueryOperator(
task_id='chama_load',
bigquery_conn_id='my_gcp_conn',
google_cloud_storage_conn_id='my_gcp_conn',
bucket='my_bucket',
destination_project_dataset_table="tst.teste123",
source_objects=['test/test0.json'],
schema_object='schemas/test.json',
source_format='NEWLINE_DELIMITED_JSON',
create_disposition='CREATE_IF_NEEDED',
write_disposition='WRITE_TRUNCATE',
dag=dag)
# Setting up Dependencies
load.set_upstream(extract)
Docker撰写。yml
version: '3'
services:
postgres:
image: postgres:9.6
environment:
- POSTGRES_USER=airflow
- POSTGRES_PASSWORD=airflow
- POSTGRES_DB=airflow
ports:
- "5432:5432"
webserver:
image: puckel/docker-airflow:1.10.1
build:
context: https://github.com/puckel/docker-airflow.git#1.10.1
dockerfile: Dockerfile
args:
AIRFLOW_DEPS: gcp_api,s3
restart: always
depends_on:
- postgres
environment:
- LOAD_EX=n
- EXECUTOR=Local
- FERNET_KEY=jsDPRErfv8Z_eVTnGfF8ywd19j4pyqE3NpdUBA_oRTo=
volumes:
- ./examples/intro-example/dags:/usr/local/airflow/dags
# Uncomment to include custom plugins
# - ./plugins:/usr/local/airflow/plugins
ports:
- "8080:8080"
command: webserver
healthcheck:
test: ["CMD-SHELL", "[ -f /usr/local/airflow/airflow-webserver.pid ]"]
interval: 30s
timeout: 30s
retries: 3
docker-compose-gcloud.yml
version: '3'
services:
postgres:
image: postgres:9.6
environment:
- POSTGRES_USER=airflow
- POSTGRES_PASSWORD=airflow
- POSTGRES_DB=airflow
ports:
- "5432:5432"
webserver:
image: puckel/docker-airflow:1.10.1
build:
context: https://github.com/puckel/docker-airflow.git#1.10.1
dockerfile: Dockerfile
args:
AIRFLOW_DEPS: gcp_api,s3
restart: always
depends_on:
- postgres
environment:
- LOAD_EX=n
- EXECUTOR=Local
- FERNET_KEY=jsDPRErfv8Z_eVTnGfF8ywd19j4pyqE3NpdUBA_oRTo=
volumes:
- ./examples/gcloud-example/dags:/usr/local/airflow/dags
# Uncomment to include custom plugins
# - ./plugins:/usr/local/airflow/plugins
ports:
- "8080:8080"
command: webserver
healthcheck:
test: ["CMD-SHELL", "[ -f /usr/local/airflow/airflow-webserver.pid ]"]
interval: 30s
timeout: 30s
retries: 3
并在docker中执行命令:
docker compose-f docker compose gcloud。yml up—容器退出时中止
气流中的错误消息:
[2019-05-29 07:00:37938]{{logging_mixin.py:95}}信息-[2019-05-29 07:00:37937]{base_hook.py:83}信息-使用到:10.0的连接。0.1[2019-05-29 07:00:58974]{models.py:1760}}错误-(2003,“无法连接到10.0.0.1上的MySQL服务器(111“连接被拒绝”)
回溯(最近一次调用最后一次):
文件/usr/local/lib/python3.6/site packages/afflow/models.py”,第1659行,在“运行”原始任务中。执行(context=context)
文件/usr/local/lib/python3.6/site packages/afflow/contrib/operators/mysql_to_gcs.py”,第105行,执行
cursor=self_query_mysql()
文件“/usr/local/lib/python3.6/site packages/afflow/contrib/operators/mysql_to_gcs.py”,第127行,在query_mysql
conn=mysql中。get_conn()
文件/usr/local/lib/python3.6/site packages/afflow/hooks/mysql_hook.py”,第103行,在get_conn
conn=MySQLdb中。connect(**conn_config)
文件/usr/local/lib/python3.6/site packages/MySQLdb/init.py”,第84行,在connect
返回连接(*args,**kwargs)
文件/usr/local/lib/python3.6/site packages/MySQLdb/connections.py)中,第164行,在init
超级(连接,self)中。init(*args,**kwargs2)
MySQLdb_例外情况。操作错误:(2003,“无法连接到10.0.0.1上的MySQL服务器(111“连接被拒绝”))
[2019-05-29 07:00:58988]{{models.py:1789}}}INFO-所有重试均失败;将任务标记为失败
[2019-05-29 07:00:58992]{{logging_mixin.py:95}}INFO-[2019-05-29 07:00:58991]{{configuration.py:255}}警告-section/key[smtp/smtp_user]在配置文件中找不到
[2019-05-29 07:00:58998]{models.py:1796}错误-[Errno 99]无法分配请求的地址
回溯(最近一次调用):
文件“/usr/local/lib/python3。6/现场包/气流/模型。py”,第1659行,在_run_raw_task
result=task\u copy.execute(context=context)
文件/usr/local/lib/python3中。6/站点包/airflow/contrib/operators/mysql\u to\u gcs。py”,第105行,在execute
cursor=self.\u query\u mysql()
文件/usr/local/lib/python3中。6/站点包/airflow/contrib/operators/mysql\u to\u gcs。py“,第127行,在_query_mysql
conn=mysql.get_conn()
File”/usr/local/lib/python3中。6/站点包/气流/挂钩/挂钩。py”,第103行,在get_conn
conn=MySQLdb.connect(**conn_config)
文件/usr/local/lib/python3中。6/站点包/MySQLdb/init。py“,第84行,在Connect
返回连接(*args,**kwargs)
文件/usr/local/lib/python3中。6/站点包/MySQLdb/connections。py“,第164行,在init
super(Connection,self).init(*args,**kwargs2)
MySQLdb._exceptions.OperationalError:(2003,“无法连接到10.0.0.1上的MySQL服务器(111“连接被拒绝”))
从错误来看,对我来说最关键的部分似乎是“get_conn”部分。这表示当airflow尝试建立与数据库的连接时失败。这意味着您的连接未指定(看起来可能是),或者部分连接不正确。
您应该检查密码、服务器地址和端口是否正确。这些应该是在你的气流。cfg,作为环境变量,或在Web服务器(管理面板)中设置
错误:无法启动连接:错误:WebSocket无法连接。在服务器上找不到连接,endpoint可能不是信号器endpoint,服务器上不存在连接ID,或者存在阻止WebSocket的代理。如果有多台服务器,请检查是否启用了粘性会话。 WebSocketTransport.js:49WebSocket连接到“ws://xxxxxx/生产/网络服务/集线器/spreadhub”失败: Angular.t
问题内容: 我正在开发一个应用程序,我想做的是从android中的服务器数据库接收数据。因此,我开始运行一些教程。我发现一个正在做我想做的事。但我得到: 本教程的整个代码在这里链接 发生错误: 我检查了一下: 防火墙已禁用 ping正在工作 连接字符串与从服务器管理界面运行servlet时完全相同 --servlet正在运行 我的配置: 服务器:Glass Fish 4.0 Android应用程序
当我运行spring boot应用程序时,我得到以下错误: 应用程序启动失败 描述:
我已经做了所有的尝试,但都不起作用,这是我的问题,我试图将一些文件从一台机器发送到另一台机器,想法是在目标机器上创建一个servlet,在服务器上运行它,并等待任何客户机连接,客户机和servlet代码在lan网络类型中完美地工作,但当涉及到wan网络类型时,我得到了这个例外 线程“main”org.apache.http.conn.HTTPhostConnectException:连接到192.
Selenium Webdriver(2.53)使用testNG和java(jdk 8)。Mozilla Firefox(46)在页面打开时立即崩溃,并显示错误消息: org.apache.http.conn.连接到127.0.0.1:7055[/127.0.0.1]失败:连接拒绝:连接
我试图在多台服务器上运行ansible角色,但出现错误: 致命:[192.168.0.10]:无法到达= 我的/etc/ansible/hosts文件如下所示: 我不知道发生了什么-一切看起来都很好-我可以通过SSH登录,但ansible ping返回相同的错误。 详细执行的日志: 你能帮我个忙吗?如果我必须在本地模式(-c local)下使用ansible,那么它是无用的。 我试图删除ansib
我有以下php代码: 警告:mysqli_connect():(28000/1045):第2行/home/u536268762/public_html/index.html中的用户“u536268762_alex”srv19.main hosting.com(使用密码:YES)被拒绝访问MySQL:u536268762_alex@“srv19.main hosting.com”(使用密码:YES)