Terraform 0.11

aws_kinesis_firehose_delivery_stream




terraform

aws_kinesis_firehose_delivery_stream

एक Kinesis Firehose डिलीवरी स्ट्रीम संसाधन प्रदान करता है। Amazon Kinesis Firehose एक पूरी तरह से प्रबंधित, इलास्टिक सेवा है जो आसानी से Amazon S3 और Amazon Redshift जैसे गंतव्यों के लिए वास्तविक समय डेटा स्ट्रीम प्रदान करता है।

अधिक जानकारी के लिए, अमेज़ॅन किनेसिस फायरहोज़ डॉक्यूमेंटेशन देखें

उदाहरण उपयोग

विस्तारित S3 गंतव्य

resource "aws_kinesis_firehose_delivery_stream" "extended_s3_stream" {
  name        = "terraform-kinesis-firehose-extended-s3-test-stream"
  destination = "extended_s3"

  extended_s3_configuration {
    role_arn   = "${aws_iam_role.firehose_role.arn}"
    bucket_arn = "${aws_s3_bucket.bucket.arn}"
    processing_configuration = [
      {
        enabled = "true"
        processors = [
          {
            type = "Lambda"
            parameters = [
              {
                parameter_name = "LambdaArn"
                parameter_value = "${aws_lambda_function.lambda_processor.arn}:$LATEST"
              }
            ]
          }
        ]
      }
    ]
  }
}

resource "aws_s3_bucket" "bucket" {
  bucket = "tf-test-bucket"
  acl    = "private"
}

resource "aws_iam_role" "firehose_role" {
  name = "firehose_test_role"

  assume_role_policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Principal": {
        "Service": "firehose.amazonaws.com"
      },
      "Effect": "Allow",
      "Sid": ""
    }
  ]
}
EOF
}

resource "aws_iam_role" "lambda_iam" {
  name = "lambda_iam"
  assume_role_policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Principal": {
        "Service": "lambda.amazonaws.com"
      },
      "Effect": "Allow",
      "Sid": ""
    }
  ]
}
EOF
}

resource "aws_lambda_function" "lambda_processor" {
  filename = "lambda.zip"
  function_name = "firehose_lambda_processor"
  role = "${aws_iam_role.lambda_iam.arn}"
  handler = "exports.handler"
  runtime = "nodejs4.3"
}

S3 गंतव्य

resource "aws_s3_bucket" "bucket" {
  bucket = "tf-test-bucket"
  acl    = "private"
}

resource "aws_iam_role" "firehose_role" {
  name = "firehose_test_role"

  assume_role_policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Principal": {
        "Service": "firehose.amazonaws.com"
      },
      "Effect": "Allow",
      "Sid": ""
    }
  ]
}
EOF
}

resource "aws_kinesis_firehose_delivery_stream" "test_stream" {
  name        = "terraform-kinesis-firehose-test-stream"
  destination = "s3"

  s3_configuration {
    role_arn   = "${aws_iam_role.firehose_role.arn}"
    bucket_arn = "${aws_s3_bucket.bucket.arn}"
  }
}

Redshift गंतव्य

resource "aws_redshift_cluster" "test_cluster" {
  cluster_identifier = "tf-redshift-cluster-%d"
  database_name      = "test"
  master_username    = "testuser"
  master_password    = "T3stPass"
  node_type          = "dc1.large"
  cluster_type       = "single-node"
}

resource "aws_kinesis_firehose_delivery_stream" "test_stream" {
  name        = "terraform-kinesis-firehose-test-stream"
  destination = "redshift"

  s3_configuration {
    role_arn           = "${aws_iam_role.firehose_role.arn}"
    bucket_arn         = "${aws_s3_bucket.bucket.arn}"
    buffer_size        = 10
    buffer_interval    = 400
    compression_format = "GZIP"
  }

  redshift_configuration {
    role_arn           = "${aws_iam_role.firehose_role.arn}"
    cluster_jdbcurl    = "jdbc:redshift://${aws_redshift_cluster.test_cluster.endpoint}/${aws_redshift_cluster.test_cluster.database_name}"
    username           = "testuser"
    password           = "T3stPass"
    data_table_name    = "test-table"
    copy_options       = "delimiter '|'" # the default delimiter
    data_table_columns = "test-col"
    s3_backup_mode     = "Enabled"
    s3_backup_configuration {
      role_arn           = "${aws_iam_role.firehose_role.arn}"
      bucket_arn         = "${aws_s3_bucket.bucket.arn}"
      buffer_size        = 15
      buffer_interval    = 300
      compression_format = "GZIP"
    }
  }
}

इलास्टिसर्च गंतव्य

resource "aws_elasticsearch_domain" "test_cluster" {
  domain_name = "firehose-es-test"
}

resource "aws_kinesis_firehose_delivery_stream" "test_stream" {
  name        = "terraform-kinesis-firehose-test-stream"
  destination = "elasticsearch"

  s3_configuration {
    role_arn           = "${aws_iam_role.firehose_role.arn}"
    bucket_arn         = "${aws_s3_bucket.bucket.arn}"
    buffer_size        = 10
    buffer_interval    = 400
    compression_format = "GZIP"
  }

  elasticsearch_configuration {
    domain_arn = "${aws_elasticsearch_domain.test_cluster.arn}"
    role_arn   = "${aws_iam_role.firehose_role.arn}"
    index_name = "test"
    type_name  = "test"

    processing_configuration = [
      {
        enabled = "true"
        processors = [
          {
            type = "Lambda"
            parameters = [
              {
                parameter_name = "LambdaArn"
                parameter_value = "${aws_lambda_function.lambda_processor.arn}:$LATEST"
              }
            ]
          }
        ]
      }
    ]
  }
}

स्प्लिट डेस्टिनेशन

resource "aws_kinesis_firehose_delivery_stream" "test_stream" {
  name        = "terraform-kinesis-firehose-test-stream"
  destination = "splunk"

  s3_configuration {
    role_arn           = "${aws_iam_role.firehose.arn}"
    bucket_arn         = "${aws_s3_bucket.bucket.arn}"
    buffer_size        = 10
    buffer_interval    = 400
    compression_format = "GZIP"
  }

  splunk_configuration {
    hec_endpoint               = "https://http-inputs-mydomain.splunkcloud.com:443"
    hec_token                  = "51D4DA16-C61B-4F5F-8EC7-ED4301342A4A"
    hec_acknowledgment_timeout = 600
    hec_endpoint_type          = "Event"
    s3_backup_mode             = "FailedEventsOnly"
  }
}

तर्क संदर्भ

निम्नलिखित तर्क समर्थित हैं:

  • name - (आवश्यक) स्ट्रीम की पहचान करने के लिए एक नाम। यह AWS खाते के लिए अद्वितीय है और क्षेत्र में स्ट्रीम बनाया गया है।
  • kinesis_source_configuration - (वैकल्पिक) kinesis स्ट्रीम को निर्दिष्ट करने की क्षमता को अनुमति देता है जो कि फायरहोस डिलीवरी स्ट्रीम के स्रोत के रूप में उपयोग की जाती है।
  • destination - (आवश्यक) यह वह डेस्टिनेशन है, जहां डेटा डिलीवर किया जाता है। एकमात्र विकल्प s3 (पदावनत, इसके बजाय Extended_s3 का उपयोग करें), redshift , redshift , elasticsearch और splunk
  • s3_configuration - (वैकल्पिक, पदावनत, देखें / उपयोग extended_s3_configuration s3_configuration जब तक कि destination redshift ) s3 गंतव्य के लिए कॉन्फ़िगरेशन विकल्प (या मध्यवर्ती बाल्टी यदि गंतव्य redshift है)। अधिक जानकारी नीचे दी गई है।
  • extended_s3_configuration - (वैकल्पिक, केवल आवश्यक है जब destination extended_s3 हो_s3) s3 गंतव्य के लिए उन्नत कॉन्फ़िगरेशन विकल्प। अधिक जानकारी नीचे दी गई है।
  • redshift_configuration - (वैकल्पिक) कॉन्फ़िगरेशन विकल्प यदि redshift गंतव्य है। s3_configuration का उपयोग करने के लिए उपयोगकर्ता को एक s3_configuration ब्लॉक भी निर्दिष्ट करना s3_configuration है। अधिक जानकारी नीचे दी गई है।

kinesis_source_configuration ऑब्जेक्ट निम्नलिखित का समर्थन करता है: * kinesis_stream_arn (आवश्यक) kinesis स्ट्रीम kinesis_stream_arn वितरण स्ट्रीम के स्रोत के रूप में उपयोग किया जाता है। * role_arn (आवश्यक) भूमिका की ARN जो स्रोत Kinesis स्ट्रीम तक पहुंच प्रदान करती है।

s3_configuration ऑब्जेक्ट निम्नलिखित का समर्थन करता है:

  • role_arn - (आवश्यक) AWS क्रेडेंशियल्स का ARN।
  • bucket_arn - (आवश्यक) S3 बाल्टी का ARN
  • prefix - (वैकल्पिक) "YYYY / MM / DD / HH" समय प्रारूप उपसर्ग स्वचालित रूप से डिलीट की गई 3 फाइलों के लिए उपयोग किया जाता है। आप समय प्रारूप उपसर्ग के सामने जोड़े जाने के लिए एक अतिरिक्त उपसर्ग निर्दिष्ट कर सकते हैं। ध्यान दें कि यदि उपसर्ग एक स्लैश के साथ समाप्त होता है, तो यह S3 बाल्टी में एक फ़ोल्डर के रूप में दिखाई देता है
  • buffer_size - (वैकल्पिक) गंतव्य पर पहुंचाने से पहले, एमबीएस में, निर्दिष्ट आकार में आने वाले डेटा। डिफ़ॉल्ट मान 5. हम अनुशंसा करते हैं कि SizeInMBs को उस डेटा की मात्रा से अधिक मान दिया जाए जो आप आमतौर पर 10 सेकंड में वितरण स्ट्रीम में रखते हैं। उदाहरण के लिए, यदि आप आम तौर पर 1 एमबी / सेकेंड के साइज के डेटा को 10 एमबी या उससे अधिक पर सेट करते हैं।
  • buffer_interval - (वैकल्पिक) गंतव्य तक पहुंचाने से पहले, सेकंड में निर्दिष्ट अवधि के लिए आने वाला डेटा। डिफ़ॉल्ट मान 300 है।
  • compression_format - (वैकल्पिक) संपीड़न प्रारूप। यदि कोई मान निर्दिष्ट नहीं है, तो डिफ़ॉल्ट UNCOMPRESSED है। अन्य समर्थित मूल्य GZIP, ZIP और स्नैपी हैं। यदि गंतव्य लाल रंग का है तो आप ज़िप या स्नैपी का उपयोग नहीं कर सकते।
  • kms_key_arn - (वैकल्पिक) KMS कुंजी को निर्दिष्ट करता है ARN स्ट्रीम डेटा को एन्क्रिप्ट करने के लिए उपयोग करेगा। यदि सेट नहीं है, तो कोई एन्क्रिप्शन का उपयोग नहीं किया जाएगा।
  • cloudwatch_logging_options - (वैकल्पिक) डिलीवरी स्ट्रीम के लिए CloudWatch लॉगिंग विकल्प। अधिक जानकारी नीचे दी गई है

s3_configuration ऑब्जेक्ट s3_configuration से समान फ़ील्ड का समर्थन करता है और साथ ही निम्न:

  • data_format_conversion_configuration - (वैकल्पिक) धारावाहिक, डिसिएरलाइज़र, और स्कीमा के लिए data_format_conversion_configuration तर्क, JSON प्रारूप से डेटा को data_format_conversion_configuration या ORC प्रारूप में परिवर्तित करने से पहले Amazon 3 पर लिखने से पहले। अधिक जानकारी नीचे दी गई है।
  • processing_configuration - (वैकल्पिक) डाटा प्रोसेसिंग विन्यास। अधिक जानकारी नीचे दी गई है।
  • s3_backup_mode - (वैकल्पिक) अमेज़न S3 बैकअप मोड। मान्य मान Disabled और Enabled । डिफ़ॉल्ट मान Disabled
  • s3_backup_configuration - (वैकल्पिक) अमेज़ॅन S3 में बैकअप के लिए कॉन्फ़िगरेशन। आवश्यक है अगर s3_backup_mode Enableds3_configuration ऑब्जेक्ट के समान फ़ील्ड का समर्थन करता है।

redshift_configuration ऑब्जेक्ट निम्नलिखित का समर्थन करता है:

  • cluster_jdbcurl - (आवश्यक) Redshift क्लस्टर का jdbcurl।
  • username - (आवश्यक) वह उपयोगकर्ता नाम जो फ़ायरहॉउस वितरण स्ट्रीम ग्रहण करेगा। यह दृढ़ता से अनुशंसा की जाती है कि प्रदान किया गया उपयोगकर्ता नाम और पासवर्ड विशेष रूप से Amazon Kinesis Firehose उद्देश्यों के लिए उपयोग किया जाता है, और यह कि खाते के लिए अनुमतियाँ Amazon Redshift INSERT अनुमतियों के लिए प्रतिबंधित हैं।
  • password - (आवश्यक) ऊपर उपयोगकर्ता नाम के लिए पासवर्ड।
  • retry_duration - (वैकल्पिक) उस समय की अवधि, जिसके दौरान Firehose एक असफलता के बाद वितरण को फिर से शुरू करता है, जो शुरुआती अनुरोध से शुरू होता है और जिसमें पहला प्रयास भी शामिल है। डिफ़ॉल्ट मान 3600 सेकंड (60 मिनट) है। अगर DurationInSeconds का मान 0 (शून्य) है या यदि पहला डिलीवरी प्रयास चालू मान से अधिक समय लेता है, तो Firehose फिर से प्रयास नहीं करता है।
  • role_arn - (आवश्यक) भूमिका की arn धारा मान role_arn है।
  • s3_backup_mode - (वैकल्पिक) अमेज़न S3 बैकअप मोड। मान्य मान Disabled और Enabled । डिफ़ॉल्ट मान Disabled
  • s3_backup_configuration - (वैकल्पिक) अमेज़ॅन S3 में बैकअप के लिए कॉन्फ़िगरेशन। आवश्यक है अगर s3_backup_mode Enableds3_configuration ऑब्जेक्ट के समान फ़ील्ड का समर्थन करता है।
  • data_table_name - (आवश्यक) redshift क्लस्टर में तालिका का नाम जिसे s3 बाल्टी कॉपी करेगी।
  • copy_options - (वैकल्पिक) s3 इंटरमीडिएट बाल्टी से डेटा को रेडशिफ्ट में कॉपी करने के विकल्प की प्रतिलिपि करें, उदाहरण के लिए डिफ़ॉल्ट सीमांकक को बदलने के लिए। मान्य मानों के लिए, AWS दस्तावेज़ देखें
  • data_table_columns - (वैकल्पिक) वह डेटा टेबल कॉलम जिसे कॉपी कमांड द्वारा लक्षित किया जाएगा।
  • cloudwatch_logging_options - (वैकल्पिक) डिलीवरी स्ट्रीम के लिए CloudWatch लॉगिंग विकल्प। अधिक जानकारी नीचे दी गई है
  • processing_configuration - (वैकल्पिक) डाटा प्रोसेसिंग विन्यास। अधिक जानकारी नीचे दी गई है।

elasticsearch_configuration ऑब्जेक्ट निम्नलिखित का समर्थन करता है:

  • buffering_interval - (वैकल्पिक) गंतव्य तक पहुँचाने से पहले, 60 से 900 के बीच सेकंड में, समय की निर्दिष्ट अवधि के लिए आने वाला डेटा। डिफ़ॉल्ट मान 300s है।
  • buffering_size - (वैकल्पिक) गंतव्य पर पहुंचाने से पहले 1 से 100 के बीच एमबी में, निर्दिष्ट आकार में आने वाला डेटा। डिफ़ॉल्ट मान 5MB है।
  • domain_arn - (आवश्यक) अमेज़न ES डोमेन का ARN। IAM भूमिका के पास RoleARN , DescribeElasticsearchDomains और DescribeElasticsearchDomainConfig भूमिका निभाने की अनुमति होनी चाहिए। पैटर्न को arn:.* करने की आवश्यकता है arn:.*
  • index_name - (आवश्यक) Elasticsearch सूचकांक नाम।
  • index_rotation_period - (वैकल्पिक) index_rotation_period सूचकांक रोटेशन की अवधि। इंडेक्स रोटेशन पुराने डेटा की समाप्ति की सुविधा के लिए IndexName के टाइमस्टैम्प को जोड़ता है। मान्य मान NoRotation , OneHour , OneDay , OneWeek और OneMonth । डिफ़ॉल्ट मान OneDay
  • retry_duration - (वैकल्पिक) 0 से 7200 के बीच सेकंड में, अमेजन retry_duration को देने में प्रारंभिक विफलता के बाद, जिसके दौरान फ़ायरहोज़ पुनः प्रयास डिलीवरी (पहले प्रयास सहित)। इस समय के बीत जाने के बाद, असफल दस्तावेज अमेज़न S3 को लिखे गए हैं। डिफ़ॉल्ट मान 300s है। यदि मान 0 है तो कोई पुनः प्रयास नहीं होगा।
  • role_arn - (आवश्यक) अमेज़ॅन ES कॉन्फ़िगरेशन API को कॉल करने और दस्तावेज़ों को अनुक्रमित करने के लिए Firehose द्वारा IAM भूमिका का ARN माना जाता है। पैटर्न को arn:.* करने की आवश्यकता है arn:.*
  • s3_backup_mode - (वैकल्पिक) परिभाषित करता है कि दस्तावेज़ों को अमेज़न S3 तक कैसे पहुंचाया जाना चाहिए। मान्य मूल्य FailedDocumentsOnly और AllDocuments । डिफ़ॉल्ट मान FailedDocumentsOnly
  • type_name - (आवश्यक) 100 अक्षरों की अधिकतम लंबाई के साथ type_name प्रकार का नाम।
  • cloudwatch_logging_options - (वैकल्पिक) डिलीवरी स्ट्रीम के लिए CloudWatch लॉगिंग विकल्प। अधिक जानकारी नीचे दी गई है
  • processing_configuration - (वैकल्पिक) डाटा प्रोसेसिंग विन्यास। अधिक जानकारी नीचे दी गई है।

splunk_configuration ऑब्जेक्ट निम्नलिखित का समर्थन करता है:

  • hec_acknowledgment_timeout - (वैकल्पिक) 180 और 600 के बीच के सेकंड में, hec_acknowledgment_timeout इसे डेटा भेजने के बाद स्प्लंक से पावती प्राप्त करने का इंतजार करता है।
  • hec_endpoint - (आवश्यक) HTTP ईवेंट कलेक्टर (HEC) समापन बिंदु जो Kinesis Firehose आपके डेटा को भेजता है।
  • hec_endpoint_type - (वैकल्पिक) HEC समापन बिंदु प्रकार। मान्य मूल्य Raw या Event । डिफ़ॉल्ट मान Raw
  • जब आप एक नया HEC समापन बिंदु बनाते हैं तो आप अपने स्प्लंक क्लस्टर से प्राप्त करने वाले hec_token - GUID।
  • s3_backup_mode - (वैकल्पिक) परिभाषित करता है कि दस्तावेज़ों को अमेज़न S3 तक कैसे पहुंचाया जाना चाहिए। मान्य मूल्य FailedEventsOnly और AllEvents । डिफ़ॉल्ट मान FailedEventsOnly
  • retry_duration - (वैकल्पिक) 0 से 7200 के बीच सेकंड में, अमेजन retry_duration को देने में प्रारंभिक विफलता के बाद, जिसके दौरान फ़ायरहोज़ पुनः प्रयास डिलीवरी (पहले प्रयास सहित)। इस समय के बीत जाने के बाद, असफल दस्तावेज अमेज़न S3 को लिखे गए हैं। डिफ़ॉल्ट मान 300s है। यदि मान 0 है तो कोई पुनः प्रयास नहीं होगा।
  • cloudwatch_logging_options - (वैकल्पिक) डिलीवरी स्ट्रीम के लिए CloudWatch लॉगिंग विकल्प। अधिक जानकारी नीचे दी गई है।

cloudwatch_logging_options ऑब्जेक्ट निम्न का समर्थन करता है:

  • enabled - (वैकल्पिक) लॉगिंग को सक्षम या अक्षम करता है। false अवहेलना करता false
  • log_group_name - (वैकल्पिक) लॉगिंग के लिए CloudWatch समूह का नाम। यदि यह सत्य है तो यह मान आवश्यक है।
  • log_stream_name - (वैकल्पिक) लॉगिंग के लिए CloudWatch लॉग स्ट्रीम नाम। यदि यह सत्य है तो यह मान आवश्यक है।

processing_configuration ऑब्जेक्ट निम्नलिखित का समर्थन करता है:

  • enabled - (वैकल्पिक) डेटा प्रोसेसिंग को सक्षम या अक्षम करता है।
  • processors - (वैकल्पिक) डेटा प्रोसेसर का सरणी। अधिक जानकारी नीचे दी गई है

processors सरणी ऑब्जेक्ट निम्नलिखित का समर्थन करते हैं:

  • type - (आवश्यक) प्रोसेसर का प्रकार। मान्य मान: Lambda
  • parameters - (वैकल्पिक) प्रोसेसर पैरामीटर्स का एरियर। अधिक जानकारी नीचे दी गई है

parameters सरणी ऑब्जेक्ट निम्न का समर्थन करती हैं:

  • parameter_name - (आवश्यक) पैरामीटर नाम। मान्य मान: LambdaArn , RoleArn , BufferSizeInMBs , BufferIntervalInSeconds , BufferIntervalInSeconds
  • parameter_value - (आवश्यक) पैरामीटर मान। 1 और 512 लंबाई (सम्मिलित) के बीच होना चाहिए। लैम्बडा एआरएन प्रदान करते समय, आपको संसाधन संस्करण को भी निर्दिष्ट करना चाहिए।

data_format_conversion_configuration

उदाहरण:

resource "aws_kinesis_firehose_delivery_stream" "example" {
  # ... other configuration ...
  extended_s3_configuration {
    # Must be at least 64
    buffer_size = 128
    # ... other configuration ...
    data_format_conversion_configuration {
      input_format_configuration {
        deserializer {
          hive_json_ser_de {}
        }
      }

      output_format_configuration {
        serializer {
          orc_ser_de {}
        }
      }

      schema_configuration {
        database_name = "${aws_glue_catalog_table.example.database_name}"
        role_arn      = "${aws_iam_role.example.arn}"
        table_name    = "${aws_glue_catalog_table.example.name}"
      }
    }
  }
}
  • input_format_configuration - (आवश्यक) नेस्ट तर्क जो निर्दिष्ट करता है कि आप JSON से अपने डेटा के प्रारूप को परिवर्तित करने के लिए Kinesis Data Firehose का उपयोग करना चाहते हैं। अधिक विवरण नीचे।
  • output_format_configuration - (आवश्यक) नेस्टेड तर्क जो उस धारावाहिक को निर्दिष्ट करता है जिसे आप Kinesis Data Firehose को अपने डेटा के प्रारूप को Parquet या ORC प्रारूप में परिवर्तित करने के लिए उपयोग करना चाहते हैं। अधिक विवरण नीचे।
  • schema_configuration - (आवश्यक) नेस्टेड तर्क जिसमें AWS गोंद डेटा कैटलॉग तालिका निर्दिष्ट होती है जिसमें स्तंभ जानकारी होती है। अधिक विवरण नीचे।
  • enabled - (वैकल्पिक) true लिए चूक। यदि आप कॉन्फ़िगरेशन विवरण को संरक्षित करते हुए प्रारूप रूपांतरण को अक्षम करना चाहते हैं तो इसे false सेट करें।

input_format_configuration

  • deserializer - (आवश्यक) नेस्टेड तर्क जो निर्दिष्ट करता है कि किस deserializer का उपयोग करना है। आप Apache Hive JSON SerDe या OpenX JSON SerDe चुन सकते हैं। अधिक विवरण नीचे।
deserializer
  • hive_json_ser_de - (वैकल्पिक) मूल Hive / HCatalog JsonSDDe को निर्दिष्ट करने वाला तर्क वितर्क। अधिक विवरण नीचे।
  • open_x_json_ser_de - (वैकल्पिक) नेस्टेड तर्क जो ओपनएक्स सर्ड को निर्दिष्ट करता है। अधिक विवरण नीचे।
hive_json_ser_de
  • timestamp_formats - (वैकल्पिक) आप अपने इनपुट डेटा JSON में मौजूद दिनांक और समय टिकटों को पार्स करने के लिए Kinesis Data Firehose कैसे चाहते हैं की एक सूची। इन प्रारूप स्ट्रिंग्स को निर्दिष्ट करने के लिए, JodaTime की DateTimeFormat प्रारूप स्ट्रिंग्स के पैटर्न सिंटैक्स का पालन करें। अधिक जानकारी के लिए, Class DateTimeFormat देखें। आप युगीन मिलीसेकंड में समय टिकटों को पार्स करने के लिए विशेष मूल्य मिलिस का उपयोग कर सकते हैं। यदि आप एक प्रारूप निर्दिष्ट नहीं करते हैं, तो Kinesis Data Firehose java.sql.Timestamp :: valueOf का उपयोग डिफ़ॉल्ट रूप से करता है।
open_x_json_ser_de
  • case_insensitive - (वैकल्पिक) जब सही पर सेट किया जाता है, जो डिफ़ॉल्ट है, तो Kinesis Data Firehose JSON कुंजियों को परिवर्तित करने से पहले उन्हें कम करने के लिए कनवर्ट करता है।
  • column_to_json_key_mappings - (वैकल्पिक) स्तंभ नामों का एक नक्शा JSON कुंजियों के लिए जो स्तंभ नामों के समान नहीं हैं। यह तब उपयोगी होता है जब JSON में हाइव कीवर्ड्स वाली कुंजियाँ होती हैं। उदाहरण के लिए, टाइमस्टैम्प एक हाइव कीवर्ड है। यदि आपके पास टाइमस्टैम्प नाम की JSON कुंजी है, तो इस कुंजी को ts नामक कॉलम में मैप करने के लिए { ts = "timestamp" } सेट करें।
  • convert_dots_in_json_keys_to_underscores - (वैकल्पिक) true सेट होने पर, निर्दिष्ट करता है कि कुंजियों के नाम में डॉट्स शामिल हैं और आप चाहते हैं कि Kinesis Data Firehose उन्हें unccores के साथ प्रतिस्थापित करें। यह उपयोगी है क्योंकि अपाचे हाइव कॉलम नामों में डॉट्स की अनुमति नहीं देता है। उदाहरण के लिए, यदि JSON में एक कुंजी है जिसका नाम "ab" है, तो आप इस विकल्प का उपयोग करते समय कॉलम नाम को "a_b" के रूप में परिभाषित कर सकते हैं। false अवहेलना करता false

output_format_configuration

  • serializer - (आवश्यक) नेस्टेड तर्क जो निर्दिष्ट करता है कि किस धारावाहिक का उपयोग करना है। आप ORC SerDe या Parquet SerDe चुन सकते हैं। अधिक विवरण नीचे।
serializer
  • orc_ser_de - (वैकल्पिक) नेस्टेड तर्क जो अमेज़ॅन 3 में स्टोर करने से पहले डेटा को ORC प्रारूप में परिवर्तित करता है। अधिक जानकारी के लिए, Apache ORC देखें। अधिक विवरण नीचे।
  • parquet_ser_de - (वैकल्पिक) नेस्टेड तर्क जो अमेज़ॅन 3 में स्टोर करने से पहले डेटा को parquet_ser_de प्रारूप में परिवर्तित करता है। अधिक जानकारी के लिए, अपाचे लकड़ी की छत देखें। अधिक विवरण नीचे।
orc_ser_de
  • block_size_bytes - (वैकल्पिक) Hadoop वितरित फ़ाइल सिस्टम (HDFS) ब्लॉक आकार। यदि आप क्वेरी करने से पहले Amazon S3 से HDFS में डेटा कॉपी करना चाहते हैं तो यह उपयोगी है। डिफ़ॉल्ट 256 MiB है और न्यूनतम 64 MiB है। Kinesis Data Firehose, पेडिंग गणनाओं के लिए इस मान का उपयोग करता है।
  • bloom_filter_columns - (वैकल्पिक) स्तंभ नामों की एक सूची जिसके लिए आप Kinesis Data Firehose को ब्लूम फ़िल्टर बनाना चाहते हैं।
  • bloom_filter_false_positive_probability - (वैकल्पिक) ब्लूम फ़िल्टर झूठी सकारात्मक संभावना ( bloom_filter_false_positive_probability ) फ़िल्टर करता है। जितना कम एफपीपी, उतना बड़ा ब्लूम फ़िल्टर। डिफ़ॉल्ट मान 0.05 , न्यूनतम 0 , और अधिकतम 1
  • compression - (वैकल्पिक) डेटा ब्लॉक पर उपयोग करने के लिए संपीड़न कोड। डिफ़ॉल्ट SNAPPY
  • dictionary_key_threshold - (वैकल्पिक) एक नाव जो गैर-अशक्त पंक्तियों की कुल संख्या के अंश का प्रतिनिधित्व करती है। शब्दकोश एन्कोडिंग को बंद करने के लिए, इस अंश को एक संख्या में सेट करें जो एक शब्दकोश में अलग-अलग कुंजी की संख्या से कम हो। हमेशा शब्दकोश एन्कोडिंग का उपयोग करने के लिए, इस सीमा को 1 सेट करें।
  • enable_padding - (वैकल्पिक) यह इंगित करने के लिए true पर सेट करें कि आप धारियों को एचडीएफएस ब्लॉक सीमाओं पर पैडेड करना चाहते हैं। यदि आप क्वेरी करने से पहले Amazon S3 से HDFS में डेटा कॉपी करना चाहते हैं तो यह उपयोगी है। चूक false
  • format_version - (वैकल्पिक) लिखने के लिए फ़ाइल का संस्करण। संभावित मान V0_11 और V0_12 । डिफ़ॉल्ट V0_12
  • padding_tolerance - (वैकल्पिक) 0 और 1 के बीच एक फ्लोट जो कि स्ट्रिप साइज के दशमलव अंश के रूप में ब्लॉक पैडिंग के लिए सहिष्णुता को परिभाषित करता है। डिफ़ॉल्ट मान 0.05 , जिसका अर्थ है 5 प्रतिशत स्ट्राइप का आकार। 64 MiB ORC धारियों और 256 MiB HDFS ब्लॉकों के डिफ़ॉल्ट मानों के लिए, 5 प्रतिशत का डिफ़ॉल्ट ब्लॉक पेडिंग सहनशीलता 256 MiB ब्लॉक के भीतर पैडिंग के लिए अधिकतम 3.2 MiB सुरक्षित रखता है। ऐसे मामले में, यदि ब्लॉक के भीतर उपलब्ध आकार 3.2 MiB से अधिक है, तो उस स्थान के भीतर फिट होने के लिए एक नया, छोटा स्ट्रिप डाला जाता है। यह सुनिश्चित करता है कि कोई भी पट्टी ब्लॉक सीमाओं को पार नहीं करती है और नोड-स्थानीय कार्य के भीतर दूरस्थ रीड का कारण बनती है। Kinesis Data Firehose इस पैरामीटर को अनदेखा करता है जब enable_padding false
  • row_index_stride - (वैकल्पिक) सूचकांक प्रविष्टियों के बीच पंक्तियों की संख्या। डिफ़ॉल्ट 10000 और न्यूनतम 1000
  • stripe_size_bytes - (वैकल्पिक) प्रत्येक पट्टी में बाइट्स की संख्या। डिफ़ॉल्ट 64 MiB है और न्यूनतम 8 MiB है।
parquet_ser_de
  • block_size_bytes - (वैकल्पिक) Hadoop वितरित फ़ाइल सिस्टम (HDFS) ब्लॉक आकार। यदि आप क्वेरी करने से पहले Amazon S3 से HDFS में डेटा कॉपी करना चाहते हैं तो यह उपयोगी है। डिफ़ॉल्ट 256 MiB है और न्यूनतम 64 MiB है। Kinesis Data Firehose, पेडिंग गणनाओं के लिए इस मान का उपयोग करता है।
  • compression - (वैकल्पिक) डेटा ब्लॉक पर उपयोग करने के लिए संपीड़न कोड। डिफ़ॉल्ट मान SNAPPY होने के साथ संभावित मान UNCOMPRESSED , SNAPPY और GZIP । उच्च विघटन की गति के लिए SNAPPY उपयोग करें। GZIP उपयोग करें यदि संपीड़न अनुपात गति से अधिक महत्वपूर्ण है।
  • enable_dictionary_compression - (वैकल्पिक) यह बताता है कि शब्दकोश संपीड़न सक्षम करना है या नहीं।
  • max_padding_bytes - (वैकल्पिक) लागू करने के लिए पैडिंग की अधिकतम राशि। यदि आप क्वेरी करने से पहले Amazon S3 से HDFS में डेटा कॉपी करना चाहते हैं तो यह उपयोगी है। डिफ़ॉल्ट 0
  • page_size_bytes - (वैकल्पिक) page_size_bytes पृष्ठ का आकार। कॉलम विखंडू पृष्ठों में विभाजित हैं। एक पृष्ठ वैचारिक रूप से एक अविभाज्य इकाई (संपीड़न और एन्कोडिंग के संदर्भ में) है। न्यूनतम मान 64 KiB है और डिफ़ॉल्ट 1 MiB है।
  • writer_version - (वैकल्पिक) आउटपुट के लिए पंक्ति प्रारूप के संस्करण को इंगित करता है। संभावित मान V1 और V2 । डिफ़ॉल्ट V1

schema_configuration

  • database_name - (आवश्यक) आउटपुट डेटा के लिए स्कीमा में AWS Glue डेटाबेस का नाम निर्दिष्ट करता है।
  • role_arn - (आवश्यक) role_arn की भूमिका AWS Glue तक पहुँचने के लिए उपयोग कर सकती है। यह भूमिका उसी खाते में होनी चाहिए जिसका उपयोग आप Kinesis Data Firehose के लिए करते हैं। क्रॉस-अकाउंट भूमिकाओं की अनुमति नहीं है।
  • table_name - (आवश्यक) AWS Glue तालिका निर्दिष्ट करता है जिसमें आपके डेटा स्कीमा को बनाने वाली स्तंभ जानकारी होती है।
  • catalog_id - (वैकल्पिक) एडब्ल्यूएस गोंद डेटा कैटलॉग की आईडी। यदि आप इसकी आपूर्ति नहीं करते हैं, तो AWS खाता आईडी का उपयोग डिफ़ॉल्ट रूप से किया जाता है।
  • region - (वैकल्पिक) यदि आप AWS क्षेत्र निर्दिष्ट नहीं करते हैं, तो डिफ़ॉल्ट वर्तमान क्षेत्र है।
  • version_id - (वैकल्पिक) आउटपुट डेटा स्कीमा के लिए तालिका संस्करण निर्दिष्ट करता है। LATEST करने के लिए चूक।

संदर्भ संदर्भित करता है

  • arn - स्ट्रीम को निर्दिष्ट करने वाला अमेज़न संसाधन नाम (ARN)

आयात

Kinesis Firehose डिलीवरी धाराएँ ARN, उदा। का उपयोग करके आयात की जा सकती हैं

$ terraform import aws_kinesis_firehose_delivery_stream.foo arn:aws:firehose:us-east-1:XXX:deliverystream/example

नोट: आयात धारा गंतव्य s3 लिए काम नहीं करता है। extended_s3 s3 का उपयोग करने पर विचार करें क्योंकि s3 गंतव्य को हटा दिया गया है।