airflow.providers.apache.sqoop.hooks.sqoop

此模块包含一个 sqoop 1.x hook。

模块内容

SqoopHook

sqoop 1 二进制文件的包装器。

class airflow.providers.apache.sqoop.hooks.sqoop.SqoopHook(conn_id=default_conn_name, verbose=False, num_mappers=None, hcatalog_database=None, hcatalog_table=None, properties=None, libjars=None, extra_options=None)[源代码]

基类:airflow.hooks.base.BaseHook

sqoop 1 二进制文件的包装器。

要能够使用此 hook,需要在 PATH 中包含 “sqoop”。

可以通过 sqoop 连接的 ‘extra’ JSON 字段传递的其他参数

  • job_tracker: 作业跟踪器 local|jobtracker:port。

  • namenode: 名称节点。

  • files: 要复制到 map reduce 集群的逗号分隔文件。

  • archives: 要在计算机器上解压缩的逗号分隔存档。

    机器。

  • password_file: 包含密码的文件的路径。

参数
  • conn_id (str) – 指向 sqoop 连接的引用。

  • verbose (bool) – 将 sqoop 设置为 verbose。

  • num_mappers (int | None) – 并行导入的 map 任务数。

  • properties (dict[str, Any] | None) – 通过 -D 参数设置的属性

  • libjars (str | None) – 可选的逗号分隔 jar 文件,包含在类路径中。

  • extra_options (dict[str, Any] | None) – 要作为 dict 传递的额外导入/导出选项。如果键没有值,只需传递一个空字符串即可。不要包含 sqoop 选项的 -- 前缀。

conn_name_attr = 'conn_id'[源代码]
default_conn_name = 'sqoop_default'[源代码]
conn_type = 'sqoop'[源代码]
hook_name = 'Sqoop'[源代码]
get_conn()[源代码]

返回 hook 的连接。

cmd_mask_password(cmd_orig)[源代码]

为了安全起见,掩盖命令密码。

popen(cmd, **kwargs)[源代码]

远程 Popen。

参数
  • cmd (list[str]) – 要远程执行的命令

  • kwargs (Any) – Popen 的额外参数(参见 subprocess.Popen)

返回

子进程的句柄

返回类型

None

import_table(table, target_dir=None, append=False, file_type='text', columns=None, split_by=None, where=None, direct=False, driver=None, schema=None)[源代码]

将表从远程位置导入到目标目录。

参数是直接 sqoop 命令行参数的副本。

参数
  • table (str) – 要读取的表

  • schema (str | None) – 模式名称

  • target_dir (str | None) – HDFS 目标目录

  • append (bool) – 将数据追加到 HDFS 中现有数据集中

  • file_type (str) – “avro”、“sequence”、“text” 或 “parquet”。将数据导入到指定格式中。默认为 text。

  • columns (str | None) – <col,col,col…> 要从表中导入的列

  • split_by (str | None) – 用于拆分工作单元的表的列

  • where (str | None) – 导入期间要使用的 WHERE 子句

  • direct (bool) – 如果数据库存在,则使用直接连接器

  • driver (Any) – 手动指定要使用的 JDBC 驱动程序类

import_query(query, target_dir=None, append=False, file_type='text', split_by=None, direct=None, driver=None)[source]

从关系数据库管理系统 (RDBMS) 导入指定查询到 HDFS。

参数
  • query (str) – 要运行的自由格式查询

  • target_dir (str | None) – HDFS 目标目录

  • append (bool) – 将数据追加到 HDFS 中现有数据集中

  • file_type (str) – “avro”, “sequence”, “text” 或 “parquet”。将数据以指定格式导入到 HDFS。默认为 text。

  • split_by (str | None) – 用于拆分工作单元的表的列

  • direct (bool | None) – 使用直接导入快速路径

  • driver (Any | None) – 手动指定要使用的 JDBC 驱动程序类

export_table(table, export_dir=None, input_null_string=None, input_null_non_string=None, staging_table=None, clear_staging_table=False, enclosed_by=None, escaped_by=None, input_fields_terminated_by=None, input_lines_terminated_by=None, input_optionally_enclosed_by=None, batch=False, relaxed_isolation=False, schema=None)[source]

将 Hive 表导出到远程位置。

参数是直接 Sqoop 命令行参数的副本

参数
  • table (str) – 远程目标表

  • schema (str | None) – 模式名称

  • export_dir (str | None) – 要导出的 Hive 表

  • input_null_string (str | None) – 将字符串列中被解释为 null 的字符串

  • input_null_non_string (str | None) – 将非字符串列中被解释为 null 的字符串

  • staging_table (str | None) – 在插入到目标表之前,数据将被暂存到的表

  • clear_staging_table (bool) – 指示可以删除暂存表中存在的任何数据

  • enclosed_by (str | None) – 设置一个必需的字段包围字符

  • escaped_by (str | None) – 设置转义字符

  • input_fields_terminated_by (str | None) – 设置字段分隔符

  • input_lines_terminated_by (str | None) – 设置行尾字符

  • input_optionally_enclosed_by (str | None) – 设置字段包围字符

  • batch (bool) – 使用批处理模式进行底层语句执行

  • relaxed_isolation (bool) – 事务隔离,用于读取映射器的未提交数据

此条目是否有帮助?