我的公司在 Teradata 中有一个 DWH,所有管道都是用 AB Initio 编写的,我们希望从 Teradata 迁移到 BigQuery,同时首先保留 AB Initio,然后它们从 AB Initio 迁移。
我需要确定当前代码库中正在使用哪些 Teradata 组件,以了解如何使其使用 BigQuery。
我从未使用过 AB Initio,但我已经获得了访问某些带有一堆目录的 UNIX 存储库的权限:ksh、mp、xfr、cfg、dlm。我无法访问图形开发环境,我唯一拥有的是 unix fs 目录中的文件。
KSH、cfg 和 XFR 文件的可读性很好,但我很难读取 MP 文件,它们看起来像:
@
{14|Type|XXGrepository|Primary_Name|XXGgraph|eme_flatten_format|1|schema_version|34|root_id|0|ent_count|145|rel_count|257|}
... (more content)
我向 ChatGPT 询问了 ABInitio MP 文件示例,它给了我一些看起来与我拥有的文件完全不同的东西:
# Begin MP
# This MP file demonstrates a simple ETL process using Teradata components
BEGIN_GRAPH ETL_Teradata_Example
# Define parameters
parameter
SOURCE_TABLE = 'source_schema.source_table';
TARGET_TABLE = 'target_schema.target_table';
MAX_DATE = DM.input_max_date;
end_parameter;
# Read from Teradata source table
component "Read Source"
:: teradataodbc_read
key 'Read from Teradata'
sql_query = 'SELECT * FROM ' & SOURCE_TABLE & ' WHERE update_date <= ' & MAX_DATE
output_metadata =
(
customer_id: int,
customer_name: string[50],
email: string[100],
purchase_amount: decimal[10,2],
purchase_date: date,
update_date: datetime
)
end_component;
# Filter out invalid email addresses
component "Filter Invalid Emails"
:: filter
condition = regex_match(email, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}$')
end_component;
# Calculate total purchase amount
component "Calculate Total"
:: rollup
key = by(customer_id)
output_metadata =
(
customer_id: int,
total_purchase_amount: decimal[12,2]
)
expression
total_purchase_amount = sum(purchase_amount)
end_expression
end_component;
# Join filtered customers with total purchase amount
component "Join Data"
:: join
key = by(customer_id)
join_type = inner
end_component;
# Write results to Teradata target table
component "Write Target"
:: teradataodbc_write
key 'Write to Teradata'
table_name = TARGET_TABLE
operation = insert
error_threshold = 0
end_component;
# Define the flow
"Read Source" -> "Filter Invalid Emails" -> "Join Data";
"Read Source" -> "Calculate Total" -> "Join Data" -> "Write Target";
END_GRAPH
# End MP
我有几个问题:
查看 travinto.com。我们将他们的产品用于一个大型迁移项目,其中我们必须将 1000 个 AB Initio 作业迁移到 GCP。他们的解决方案无缝且高效地处理了该过程。希望这可以帮助您顺利有效地迁移。